您好,我即将将我的两个几乎可以工作的简单保险丝文件系统从bazillion 保险丝移植到 go-fuse。 go-fuse api似乎更复杂。问题是:在NewServer(),使用哪个 RawFileSystem?如何实现 read、readdir 等的回调?在哪里使用WaitMount()?什么是DeleteNotify(),EntryNotify()?
1 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
好的,我找到了解决方案
1. 创建一个包含 nodefs.Node 的结构体:
type my_root struct {nodefs.Node}
初始化它
my = &my_root{Node: nodefs.NewDefaultNode()}
建立连接和原始文件系统
con := nodefs.NewFileSystemConnector(my, nil)
raw := fuse.NewRawFileSystem(con.RawFS())
最后,启动保险丝 fs
server, err := fuse.NewServer(raw, f.dir, optz)
像这样:
func (my_root) OpenDir(context *fuse.Context) ([]fuse.DirEntry, fuse.Status) {}
func (my_root) Lookup(out *fuse.Attr, name string, context *fuse.Context) (node *nodefs.Inode, code fuse.Status)
在第 1 步之后,像这样:
server.WaitMount()
我不需要这个。
- 1 回答
- 0 关注
- 222 浏览
添加回答
举报
0/150
提交
取消