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

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

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

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

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


person AnC    schedule 06.08.2010    source источник


Ответы (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.

person slebetman    schedule 06.08.2010
comment
Спасибо - я знаю о WebDAV, но в настоящее время не совсем понимаю, как это связано (вероятно, из-за невежества) или как бы я начал работу. Чтобы уточнить: я контролирую только клиент, поэтому не могу устанавливать какие-либо модули WebDAV на сервер. Проведу дополнительные исследования... - person AnC; 06.08.2010