2011-01-02 5 views
1

Концепция:Есть ли уже файловая система FUSE, которая сериализует каждый запрос в поток?

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

Преимущество:

  1. Простое внедрение серверов на языке высокого уровня (без необходимости каких-либо арочных зависящих от таких вещей, как JNI или любой другой)
  2. Простой одноранговой сети файловой системы из коробки.
  3. Доступность без фактического FUSE (если он недоступен):
nc -lp 1234 -e fusexmp_server& 
fakefusestream 127.0.0.1 1234 
% ls 
bin lib usr proc etc 
% get /etc/hosts 
% exit 

Как простой RPC методов FUSE. Протокол должен быть простым, как IRC, и должен обрабатывать все, с чем может справиться FUSE.

Есть ли такая вещь или я должен ее реализовать?

ответ

1

Кажется, что ccgfs может помочь вам в этом направлении. Вы должны запустить ccgfs-хранилище в конце, где находятся файлы, и ccgfs-mount, где должна быть точка монтирования, и любой из компонентов заменяется вашей программой, предполагая, что он придерживается протокола потока (doc, отправленный в тарбол). Обратите внимание, что вам все равно нужно каким-то образом подключить два компонента (как вы это решаете: он работает с stdin/stdout).

socat (предпочтительнее netcat) также работает с этим.

+0

Да, в голове я имел в виду «socat», но писал «nc», потому что это более распространено. –

+0

Да, socat -v exec: 'ccgfs-storage -p /' exec: './ ccgfs-mount/mnt/tmp' показывает, что это то, что я имел в виду. Но формат пакета не является хорошим, двоичным и очень далек от того, чтобы быть понятным. –

+0

Является ли это коротким документом или является двоичным, это проблема, не стесняйтесь приступать к обсуждению улучшения в/с списками/авторами проекта. – user502515

 Смежные вопросы

  • Нет связанных вопросов^_^