我想创建一个 FUSE 文件系统,它接受对文件系统内任何路径的任何类型的写入操作。有点像命名管道,但采用目录的形式。
echo test > bar # consumes "test"
echo test > bar/foo # consumes "test", even though the directory "bar" hasn't been created
echo test > x/y/z/test # consumes "test", even though the directories "x/y/z" haven't been created
我使用bazil.org/fuse进行实施。我面临的问题是,当应用程序想要写入foo/bar我的文件系统内部时,它会检查是否foo是目录,然后检查是否bar是文件。不幸的是,我无法预先知道foo应该是文件还是目录。
我的Attr函数如下所示:
func (d *Dir) Attr(ctx context.Context, a *fuse.Attr) error {
a.Inode = 1
a.Mode = os.ModeDir | 0755
}
此代码特定于目录节点类型,因为os.ModeDir. 我希望这适用于目录或文件。
有办法实现我想要的吗?
去保险丝
收到一只叮咚
相关分类