2

我想知道如何使用 FUSE 从远程机器挂载目录。此链接中给出的教程将本地目录安装到另一个本地目录。这基本上发生在fuse_main函数中。有没有人知道如何对远程机器上的目录做同样的事情?

函数调用如下

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

注意:我不能使用 sshfs

谢谢。

4

3 回答 3

2

太糟糕了,你不能使用 sshfs 1 - 这是我选择的武器(如果我需要挂载,否则 rsync 会很好)。

您可以尝试curlftpfs哪个能够安装 FTP '共享'。

一定要看看写一个.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 实现之一的代码,一般重写。如您所见,您至少需要实现open、和read,以获得功能最少的 FS。writeclose

这些成员是执行这些操作的函数。他们可以使用 HTTP、SSH、FTP、自定义协议,随心所欲。但是,您必须编写它们,并且远程服务器上的某些东西需要响应它们。

要直接回答您的问题,除非您自己实现该功能,否则 FUSE(单独)不会做您想做的事情。

于 2011-11-24T02:20:23.997 回答