2

FUSE を使用してリモート マシンからディレクトリをマウントする方法を考えています。このリンクにあるチュートリアルでは、ローカル ディレクトリを別のローカル ディレクトリにマウントします。これは基本的に、fuse_main関数で発生します。リモートマシン上のディレクトリに対して同じことを行う方法について、誰かが考えを持っていますか?

関数呼び出しは次のとおりです

fuse_main(argc, argv, &bb_oper, bb_data);

注: sshfs は使用できません

ありがとう。

4

3 に答える 3

2

sshfs 1を使用できないのは残念です。これは私の選択した武器です (マウントする必要がある場合、そうでない場合は rsync がうまく機能します)。

curlftpfsFTP「共有」をマウントできるものを試すことができます。

これが便利.netrcに機能するように、(セキュリティのための適切な権限で)を書くことを確認してください


1どうして?

于 2011-11-24T01:18:03.730 に答える
1

これには、ローカルマシンとリモートマシンが同意するある種のネットワークトランスポートが必要です。sshfsでない場合は、smbまたはNFSなどです。

sshfs を使用できない理由を全員に説明すると、役立つ場合があります。

于 2011-11-24T02:31:35.500 に答える
0

他のネットワーク ファイル システムと同様に、FUSE には下層のトランスポート層が必要です。リモート マシン上の何かが実際の I/O を処理できない限り、役に立ちません。

fuse 引数では、ファイル システムで処理できるようにするハンドラーを設定します。たとえば、次のようになります。

static struct fuse_operations const myfs_ops = {
        .getattr = my_getattr,
        .mknod = my_mknod,
        .mkdir = my_mkdir,
        .unlink = my_rm,
        .rmdir = my_rmdir,
        .truncate = my_truncate,
        .open = my_open,
        .read = my_read,
        .write = my_write,
        .readdir = my_readdir,
        .create = my_create,
        .destroy = my_destroy,
        .utime = my_utime,
        .symlink = my_symlink
};

これは、私の現在の FUSE 実装の 1 つを一般的に書き直したコードです。ご覧のとおり、最小限の機能を持つ FS には、少なくともopenreadwriteおよびを実装する必要があります。close

これらのメンバーは、それらの操作を行う関数です。HTTP、SSH、FTP、カスタム プロトコルなど、必要に応じて使用できます。ただし、それらを作成する必要があり、リモート サーバー上の何かがそれらに応答する必要があります。

あなたの質問に直接答えるために、機能を自分で実装しない限り、FUSE (それ自体) はあなたが望むことをするつもりはありません。

于 2011-11-24T02:20:23.997 に答える