我正在编写一个只读的FUSE文件系统,它抽象了对远程文件系统的访问。远程文件系统需要用户ID,令牌和文件ID来生成文件。
如果我在/ mnt / rfs上安装了我的FUSE文件系统并且程序试图打开文件/ mnt / rfs / user / token / fileid FUSE将触发三个getAttr调用,一个用于/ user,一个用于/ user / token和一个用于/ user / token / fileid。
有没有办法从getAttr调用内部检测到这个特定的调用是路径中的最后一个元素?显然,如果我知道我的服务如何工作,我可以伪造前两个元素的目录,然后使用user / token / fileid信息将文件下载到某个本地tmp存储。但这很脆弱而且很脆弱。
没有通用的方法来做到这一点。根据具体情况处理。