在 Golang 中使用 go-fuse 包

您好,我即将将我的两个几乎可以工作的简单保险丝文件系统从bazillion 保险丝移植到 go-fuse。 go-fuse api似乎更复杂。问题是:

  1. NewServer(),使用哪个 RawFileSystem?

  2. 如何实现 read、readdir 等的回调?

  3. 在哪里使用WaitMount()

  4. 什么是DeleteNotify()EntryNotify()


慕无忌1623718
浏览 223回答 1
1回答

元芳怎么了

好的,我找到了解决方案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()我不需要这个。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go