Веб 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.