我想知道如何使用 FUSE 从远程机器挂载目录。此链接中给出的教程将本地目录安装到另一个本地目录。这基本上发生在fuse_main函数中。有没有人知道如何对远程机器上的目录做同样的事情?
函数调用如下
fuse_main(argc, argv, &bb_oper, bb_data);
注意:我不能使用 sshfs
谢谢。
我想知道如何使用 FUSE 从远程机器挂载目录。此链接中给出的教程将本地目录安装到另一个本地目录。这基本上发生在fuse_main函数中。有没有人知道如何对远程机器上的目录做同样的事情?
函数调用如下
fuse_main(argc, argv, &bb_oper, bb_data);
注意:我不能使用 sshfs
谢谢。
太糟糕了,你不能使用 sshfs 1 - 这是我选择的武器(如果我需要挂载,否则 rsync 会很好)。
您可以尝试curlftpfs
哪个能够安装 FTP '共享'。
一定要看看写一个.netrc
(具有适当的安全权限),以便方便地进行这项工作
1为什么不呢?
您需要有某种本地和远程机器同意的网络传输:如果不是 sshfs,那么 smb 或 NFS 或其他东西。
如果您告诉所有人为什么不能使用 sshfs,这可能会有所帮助。
就像任何其他网络文件系统一样,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。write
close
这些成员是执行这些操作的函数。他们可以使用 HTTP、SSH、FTP、自定义协议,随心所欲。但是,您必须编写它们,并且远程服务器上的某些东西需要响应它们。
要直接回答您的问题,除非您自己实现该功能,否则 FUSE(单独)不会做您想做的事情。