proton-drive-linux-fs

Wat het doet

Dit pakket koppelt je Proton Drive aan een door jou gekozen map. Alle bestanden en mappen worden direct uit de metadata van Proton gelist. De inhoud van alle bestanden wordt echter niet vooraf gedownload; in plaats daarvan worden bestanden on-demand gedownload wanneer je ze leest. Dit is een "luie" (lazy) benadering die bandbreedte en schijfruimte bespaart, vergelijkbaar met Google Drive, Dropbox, OneDrive, etc.

Wijzigingen op afstand bereiken de koppeling via de event-feed van Proton, waardoor de betreffende maplijsten en gecachte bestandsinhoud ongeldig worden. Schrijfacties worden gebufferd naar een lokaal tijdelijk bestand en na een ingestelde time-out volledig geüpload naar Proton zodra het bestand wordt gesloten.

Status

Dit is een vroege en onofficiële versie. Het is niet gelieerd aan, goedgekeurd door of ondersteund door Proton AG.

De meest voorkomende operaties zijn getest, zoals: lezen, schrijven, aanmaken, verwijderen, hernoemen en verplaatsen binnen één Proton Drive-share. Omdat elke configuratie anders is, kunnen niet alle scenario's worden getest.

Houd rekening met bugs. Meld deze via de issue tracker.

Snelstart

Zie Snelstart voor een complete copy-paste workflow.

Componenten

Je applicaties communiceren niet rechtstreeks met Proton. Lees- en schrijfacties lopen via de FUSE-laag van de kernel naar de mount-daemon; dit is het enige onderdeel dat communiceert met de API van Proton. Alle communicatie is in deze laag afgesloten om lekken van inloggegevens of gegevens te voorkomen.

De tray-applicatie en eventuele toekomstige ontwikkelingen (waarschijnlijk een GUI) communiceren met dezelfde daemon via een lokale unix-socket, met een statusbestand als fallback wanneer de socket niet beschikbaar is. Idealiter blijft het systeem zo altijd werken.

Architectuuroverzicht:

  • Gebruikersapplicatie → Kernel FUSE → proton-drive-fs daemon
  • Binnen de daemon: fusefs → drive → auth
  • proton-drive-fs daemon → Proton API
  • Tray / Toekomstige GUI → (via unix socket of statusbestand) → proton-drive-fs daemon