2011-01-02 10 views
1

Konzept:Gibt es bereits FUSE-Dateisystem, die jede Anfrage in einen Stream serialisiert?

nc -lp 1234 -e fusexmp_server 
nc 127.0.0.1 1234 -c "fusestream /mnt/tmp" 

Vorteile:

  1. Einfache Implementierung von Servern in Sprache hohem Niveau (ohne Notwendigkeit irgendwelcher Bogen abhängigen Dinge wie JNI oder was auch immer)
  2. Einfache Ad-hoc-Vernetzung Dateisystem aus der Box.
  3. Zugänglichkeit ohne tatsächliche FUSE (wenn es nicht verfügbar ist):
nc -lp 1234 -e fusexmp_server& 
fakefusestream 127.0.0.1 1234 
% ls 
bin lib usr proc etc 
% get /etc/hosts 
% exit 

Wie einfache RPC von FUSE Methoden. Das Protokoll sollte einfach wie IRC sein und sollte alle Dinge behandeln, mit denen FUSE umgehen kann.

Gibt es schon so etwas oder sollte ich es implementieren?

Antwort

1

Es scheint, dass ccgfs Ihnen in dieser Richtung helfen könnte. Sie würden ccgfs-storage an dem Ende ausführen, an dem sich die Dateien befinden, und ccgfs-mount, wo der Mountpoint sein sollte, und beide Komponenten können durch ein Programm ersetzt werden, vorausgesetzt, dass es dem stream-Protokoll entspricht Tarball). Beachten Sie, dass Sie die beiden Komponenten trotzdem irgendwie verbinden müssen (wie in: Sie entscheiden; es funktioniert mit stdin/stdout).

socat (bevorzugt zu netcat) funktioniert damit auch.

+0

Ja, im Kopf meinte ich "socat", aber schrieb "nc", weil es häufiger ist. –

+0

Ja, socat -v exec: 'ccgfs-storage -p /' exec: './ccgfs-mount/mnt/tmp' zeigt, dass ich das richtig verstanden habe. Aber das Paketformat ist nicht nett, binär und ist weit davon entfernt, selbsterklärend zu sein. –

+0

Unabhängig davon, ob es sich um das kurze Dokument handelt oder ob es sich um ein Binärdokument handelt, können Sie eine Diskussion über Verbesserungen an den/den Projektlisten/Autoren starten. – user502515