我想知道如何使用FUSE从远程机器安装目录。 this link中给出的教程将本地目录安装到另一个本地目录上。 这基本上发生在 fuse_main 函数中。有没有人知道如何为远程机器上的目录做同样的事情?
函数调用如下
fuse_main(argc, argv, &bb_oper, bb_data);
注意:我不能使用sshfs
感谢。
答案 0 :(得分:2)
太糟糕了,你不能使用sshfs 1 - 它是我的首选武器( iff我需要挂载,否则rsync很好用)。
您可以尝试curlftpfs
,它可以安装FTP'共享'。
请务必考虑撰写.netrc
(具有适当的安全权限),以便方便地
<子> 1 为什么不呢? 子>
答案 1 :(得分:1)
您需要拥有本地和远程计算机同意的某种网络传输:如果不是sshfs,那么smb或NFS或其他东西。
如果您告诉所有人为什么不能使用sshfs,这可能会有所帮助。
答案 2 :(得分: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
,write
和close
以获得功能最低的FS。
这些成员是执行这些操作的功能。他们可以使用HTTP,SSH,FTP,自定义协议,无论您想要什么。但是,你必须编写它们,远程服务器上的某些东西需要响应它们。
要直接回答你的问题,除非你自己实现这个功能,否则FUSE(它自己)不会做你想要的事情。