Веб API как виртуальная файловая система?

Я играл с идеей представления веб-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 ответ

Решение

Стандарт для этого называется 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.

Другие вопросы по тегам