feat(client): Windows Cloud-Files-API als File-Provider (OneDrive-Style)
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>
This commit is contained in:
@@ -28,3 +28,27 @@ rusqlite = { version = "0.34", features = ["bundled"] }
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
base64 = "0.22"
|
||||
open = "5"
|
||||
once_cell = "1"
|
||||
|
||||
# Plattform-spezifische File-Provider-Integration (OneDrive-artig).
|
||||
# Nur auf Windows gegen die Cloud Files API (cfapi.dll) linken.
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
windows = { version = "0.58", features = [
|
||||
"Win32_Foundation",
|
||||
"Win32_Storage_FileSystem",
|
||||
"Win32_Storage_CloudFilters",
|
||||
"Win32_System_IO",
|
||||
"Win32_System_Com",
|
||||
"Win32_UI_Shell",
|
||||
"Win32_Security",
|
||||
] }
|
||||
widestring = "1"
|
||||
|
||||
# Linux: FUSE-basiertes Virtual-Filesystem (optional, cargo build --features linux_fuse)
|
||||
[target.'cfg(target_os = "linux")'.dependencies]
|
||||
fuser = { version = "0.15", optional = true }
|
||||
libc = "0.2"
|
||||
|
||||
[features]
|
||||
default = []
|
||||
linux_fuse = ["fuser"]
|
||||
|
||||
Reference in New Issue
Block a user