веб API как виртуальная файловая система? - PullRequest
5 голосов
/ 06 августа 2010

Я играл с идеей представления веб-API RESTful (например, CouchDB, Twitter) в виде файловой системы - просто для удовольствия и для обучения. Однако я понятия не имею, выполнимо ли это или как начать.

Например, ресурс типа http://example.org/foo/bar может быть доступен через / mnt / example.org / foo / bar . Я думаю, ls /mnt/example.org/foo вернется bar baz.

Хотя я знаю из FUSE , я действительно ничего не знаю об этом. Не будучи программистом низкого уровня, мне интересно, есть ли какой-нибудь Python API, или, возможно, я мог бы просто написать некоторый скрипт Bash для запуска curl запросов на запросы файловой системы?

Любые указатели будут с благодарностью!

1 Ответ

6 голосов
/ 06 августа 2010

Стандарт для этого называется WebDAV.Смотрите: http://webdav.org

Для него даже есть драйвер FUSE: http://savannah.nongnu.org/projects/davfs2

Глядя на исходный код, вы обнаруживаете, что davfs2 написан на C. Это может быть интересным проектом- реализуя его на Python или Perl.


Ах, из комментариев я вижу то, что вы хотите, это указатели на то, как написать модуль FUSE.Конечно, ваша идея написать что-то вроде TwitterFS осуществима.Вероятно, это будет работать как в /proc.

Библиотека Perl для реализации fuse достаточно хорошо документирована: CPAN - Fuse .Все, что вам нужно, это загрузить модуль и реализовать соответствующие функции обратного вызова.Выглядит достаточно просто.

Вот библиотека Python FUSE: fusepy .Это не так хорошо документировано, но приведено несколько примеров, включая функциональную файловую систему sftp.

...