Neuer Modus neben dem bestehenden Full-Sync: Dateien erscheinen im Explorer als Platzhalter mit Wolken-Icon und werden erst bei Zugriff vom Mini-Cloud-Server gestreamt. Windows (MVP): - CfRegisterSyncRoot + CfConnectSyncRoot - CfCreatePlaceholders fuer jede Datei aus /api/sync/tree - FETCH_DATA-Callback mit Range-basiertem HTTPS-Download + CfExecute - CfSetPinState fuer manuelles "Immer offline halten" Linux (Skelett): - FUSE-Provider hinter Feature-Flag linux_fuse (libfuse3-dev) - Stub-Funktionen - Implementierung folgt macOS: - Platzhalter, erfordert Apple-Signatur - spaeter Tauri-Commands: cloud_files_supported/enable/disable/pin/unpin. Cargo.toml: target-spezifische windows-rs Dependency. Doku: clients/desktop/CLOUD_FILES.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.