SyncTClient

Ein Syncthing-Client für Windows, der Dateien als Platzhalter darstellt und Inhalte erst bei Zugriff überträgt — mit selbstverwaltetem Cache je Datenträger.

Die Dateien bleiben dabei gewöhnliche Dateien im Dateisystem. Kein Container, kein virtuelles Laufwerk, kein eigenes Format: was der Client einbindet, kann jedes andere Programm gleichzeitig lesen.

 

Das Hauptfenster von SyncTClient

Warum

Kein existierender Sync-Dienst kann alle vier Dinge gleichzeitig:

   
a) Platzhalter wie OneDrive Nextcloud, Seafile ✓ · Syncthing ✗
b) selbstverwalteter Cache mit Größenlimit Seafile, rclone ✓ · Nextcloud ✗
c) Client-zu-Client im selben Netz Syncthing, Resilio ✓ · Nextcloud ✗
d) bestehende Verzeichnisse einbinden Syncthing, Resilio ✓ · Seafile ✗

Syncthing kann (c) und (d) von Haus aus. Dieses Projekt ergänzt (a) und (b) — als eigenständiger Knoten, der das Block Exchange Protocol spricht. Auf der Gegenseite steht ein unverändertes Syncthing.

Dass das geht, ist kein Wunschdenken

Syncthings globaler Index enthält für jede Datei eines Ordners den Namen, die Größe und die vollständige Blockliste — auch für Dateien, die lokal nicht materialisiert sind. Und BEP hat eine Request-Nachricht mit (Ordner, Name, Offset, Größe, Hash): wahlfreier Blockzugriff über Netzwerk.

Damit ist der Katalog für die Platzhalter schon da, und das Bereitstellen eines Inhalts ist ein gezielter Block-Request statt eines vollständigen Pulls.

Ehrliche Ankündigung ist eingebaut

FileInfo.setLocalFlags() in Syncthing ruft setNoContent() auf, was Blockliste und Größe verwirft. Ein Gerät kündigt also automatisch nur an, was es wirklich hält — Gegenstellen fragen uns nie nach Daten, die wir nicht haben. Das gilt es nicht zu umgehen, sondern zu nutzen.

Was der Client kann

Platzhalter

  • Platzhalter im Explorer über die Cloud Filter API; der Inhalt wird übertragen, wenn jemand die Datei öffnet
  • Überlagerungssymbole — Wolke, Kringel, grüner Haken — über den Anheft-Zustand
  • Ein Modus je Datei und je Ordner, im Index geführt: Platzhalter oder immer lokal. Ein Ordner vererbt seinen Modus nach unten und überstimmt dabei die Vermerke darunter
  • Cache mit Limit je Datenträger, Verdrängung nach letztem Zugriff, Invalidierung bei Änderung
  • Verdrängung nur gegen Beweis: eine Kopie wird erst freigegeben, wenn die Gegenstelle sie im Index vollständig führt (Size > 0 und Blockliste). Die geforderte Anzahl Gegenstellen ist je Freigabe einstellbar
  • Lokal geänderte Dateien werden nicht verdrängt
  • Der stündliche Durchgang gleicht die Anheft-Merkmale im Dateisystem mit der Datenbank ab — was im Dateimanager umgestellt wurde, gilt danach auch hier

 

Teilbaum-Auswahl

Jetzt downloaden und testen unter
https://github.com/Taloan/SyncTClient

 

(Visited 1 times, 1 visits today)