6

I've been toying with the idea of representing RESTful web APIs (e.g. CouchDB, Twitter) as a file system - just for fun and as a learning experience. However, I have no idea whether that's feasible or how to get started.

For example, a resource like http://example.org/foo/bar might be accessible via /mnt/example.org/foo/bar. I imagine ls /mnt/example.org/foo would return bar baz.

While I know of FUSE, I don't really know anything about it. Not being a low-level programmer, I wonder whether there's some sort of Python API, or perhaps I could simply write some Bash script to trigger curl requests for file-system queries?

Any pointers would be greatly appreciated!

4

1 に答える 1

6

これの標準は WebDAV と呼ばれます。参照: http://webdav.org

そのための FUSE ドライバーもあります: http://savannah.nongnu.org/projects/davfs2

ソース コードを見ると、davfs2 は C で記述されているように見えます。Python または Perl で再実装するのは楽しいプロジェクトになる可能性があります。


ああ、コメントから、あなたが欲しいのは FUSE モジュールの書き方についての指針だと思います。確かに、TwitterFS のようなものを作成するというあなたの考えは実行可能です。おそらく /proc のように機能します。

ヒューズを実装するための Perl ライブラリは、非常によく文書化されています: CPAN - Fuse。必要なのは、モジュールをロードして、関連するコールバック関数を実装することだけです。簡単に見えます。

Python FUSE ライブラリは次のとおりです: fusepy。十分に文書化されていませんが、機能する sftp ファイルシステムを含むいくつかの例があります。

于 2010-08-06T09:08:58.863 に答える