2.4 KiB
Native File-Provider-Integration (Platzhalter-Modus)
Zusaetzlich zum klassischen "alles-kopieren"-Sync bietet der Desktop-Client einen OneDrive-aehnlichen Platzhalter-Modus: Dateien erscheinen im Dateimanager als kleine Metadata-Dateien (Platzhalter) und werden erst bei Doppelklick vom Server geladen.
Status
| Plattform | Status | Technologie |
|---|---|---|
| Windows | MVP | Cloud Files API (cfapi.dll) |
| Linux | Skelett | FUSE (libfuse3) - feature linux_fuse |
| macOS | Geplant | NSFileProviderExtension + Signatur |
Windows
Voraussetzungen
- Windows 10 1709 (Build 16299) oder neuer
- Der Client laeuft als regulaerer Benutzerprozess (keine Admin-Rechte noetig)
Was funktioniert
CfRegisterSyncRootregistriert einen Ordner als Sync-Root, der Explorer zeigt Wolken-Overlay-Icons an.CfCreatePlaceholderslegt fuer jede Mini-Cloud-Datei einen Platzhalter mit korrekter Groesse und Aenderungszeit an.FETCH_DATA-Callback laedt per Range-Request vom Server, sobald der Explorer Dateidaten anfordert (z.B. beim Oeffnen).CfSetPinStateerlaubt manuelles "Immer offline halten" / "Nur in Cloud".
Was noch fehlt
- Upload-Callback (
NOTIFY_FILE_CLOSE_COMPLETION) fuer lokal geaenderte Dateien - Context-Menue "Ein-/Auschecken" via Shell-Extension
- Delta-Updates (neue/geloeschte Dateien auf dem Server -> lokale Placeholder)
- Konflikt-Aufloesung
Einschalten
Im Client-UI den Schalter "Cloud-Files-Modus" aktivieren (ruft intern
cloud_files_enable-Command auf). Alternativ per Kommandozeile beim Build:
# Aus clients/desktop/src-tauri:
cargo build --release
Windows-Targets brauchen das Windows-SDK (uebersetzt aber sauber mit
cross-compile via cargo xwin aus Linux, wenn build.sh windows laeuft).
Linux
FUSE-Provider ist optional und mit einem Feature-Flag versehen, damit
normale Linux-Builds nicht libfuse3-dev voraussetzen:
cargo build --features linux_fuse
Overlay-Icons im Dateimanager (Nautilus / Dolphin / Caja) brauchen zusaetzlich eine native Extension pro DE - folgt in einem spaeteren Commit.
macOS
Braucht eine Apple Developer ID + Notarization, da NSFileProviderExtension
sonst vom Finder nicht geladen wird. Wird angegangen, sobald ein
Apple-Dev-Zugang verfuegbar ist.