Domanda
Ho accarezzato l'idea di rappresentare API RESTful web (ad esempio CouchDB, Twitter) come un file system - solo per divertimento e come esperienza di apprendimento. Tuttavia, non ho idea se questo è fattibile o come iniziare.
Per esempio, una risorsa come http://example.org/foo/bar potrebbe essere accessibile via /mnt/example.org/foo/bar . Immagino ls /mnt/example.org/foo
sarebbe tornato bar baz
.
Anche se so di FUSE , io in realtà non sapere nulla su di esso. Non essendo un programmatore di basso livello, mi chiedo se ci sia una sorta di Python API, o forse si potrebbe semplicemente scrivere qualche script Bash alle richieste di attivazione curl
per le query del file system?
Tutti gli indicatori sarebbe molto apprezzato!
Soluzione
Lo standard per questo si chiama WebDAV. Vedere: http://webdav.org
C'è anche un driver FUSE per esso: http://savannah.nongnu.org/projects/ davfs2
Guardando il codice sorgente sembra che davfs2 è scritto in C. Potrebbe essere un progetto divertente re-implementazione in Python o Perl.
Ah, dai commenti che vedo quello che volete sono indicazioni su come scrivere un modulo FUSE. Certo, la vostra idea di scrivere qualcosa di simile TwitterFS è fattibile. E 'probabilmente funzionerebbe come la roba in proc /.
La libreria Perl per l'attuazione del fusibile è abbastanza ben documentato: CPAN - fusibile . Tutto ciò che serve è quella di caricare il modulo e implementare le funzioni di callback rilevanti. Sembra abbastanza facile.
Ecco una libreria Python FUSE: fusepy . Non è così ben documentato, ma ci sono diversi esempi tra cui un filesystem SFTP funzionale.