9

Perl で仮想ファイルシステム レイヤーを探しています。実際のファイルシステムがどのように実装されているかに関係なくls、などの基本的なファイルシステム ルーチンの一般的な抽象化を提供するもの。mkdir

次のようなインターフェイスが必要です。

# create a directory "/some/path/tmp" in my current filesystem
my $plainfs = Module::new->(type => 'local', root=>'/some/path);
$plainfs->mdkir("/tmp"); 

# create "tmp" dir on a remote filesystem
my $sshfs = Module::new->(type=>'ssh', root=>'user:password@example.com:~/pub')
$sshfs->mdkir("/tmp"); 

MetaCPAN でVFS パッケージを見つけましたが、残念ながら空の未実装のモジュールしかありません。

すでに実装されているものはありますか?現在、私は「ローカル」ファイルシステムと ftp または ssh のみを探しています。データベース「ファイルシステム」や、CVS などのような風変わりな「ファイルシステム」は必要ありません。20k MetaCPAN モジュールを検索するのは、タグ付けシステムなどを使用しないと大変です…</p>

4

4 に答える 4

1

FUSEの実装はどうですか?(ユーザー空間のファイルシステム)? それに基づいて、perl で実装された疑似ファイルシステムが少なくとも 1 つあると思います。基本的には、mount、ls、df、stat などの一連の操作にすぎません。私は C で autofs ソースを調べたことがありますが、かなり簡単に見えました。http://code.google.com/p/mogilefs/も参照してください。

于 2013-07-14T08:06:14.613 に答える
1

モジュールのアプローチにこだわりすぎないでください。必要なのは、SSH/FTP ファイルシステムをローカル ファイルシステムとしてマウントするユーティリティだけで、その後は cd、mkdir などの標準コマンドを使用するだけです。このためのモジュールが表示されない理由は、このアプローチが一般的に好まれるためです。

http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FileSystemsを見てください。

FUSE を使用してこれらのファイル システムをマウントするだけです。ここにいくつかのリンクがありますが、それらのほとんどは、ほとんどのディストリビューションでもパッケージとして入手できます。

http://sourceforge.net/projects/lufs/ http://lftpfs.sourceforge.net

Perl 内で FUSE ファイル システムを簡単にマウントするためのモジュールを次に示します。

http://search.cpan.org/~dpavlin/Fuse/Fuse.pm

于 2013-09-05T14:24:54.293 に答える
1

おそらくFile::Systemが探しているものでしょう。これは、仮想ファイル システムを管理するための一般的なオペレーティング システムに見られる基本的な機能を提供します (必ずしもファイルとディレクトリだけで構成されているわけではありません)。

ほとんどの機能は、File::System::Objectパッケージのメソッドとして提供されます。

于 2015-03-09T09:33:47.773 に答える