![由正在运行的程序支持的“文件”?](https://linux22.com/image/152079/%E7%94%B1%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E7%A8%8B%E5%BA%8F%E6%94%AF%E6%8C%81%E7%9A%84%E2%80%9C%E6%96%87%E4%BB%B6%E2%80%9D%EF%BC%9F.png)
我的客户有许多程序可以读取和写入特定格式的文件。他们通过发送定期的旧系统调用来做到这一点,因此像 gio 这样的库(在一般情况下)不会参与其中。我想将数据存储在数据库而不是文件中,尽管我无法更改读取和写入文件的程序。相反,我需要将数据存储在数据库中,同时欺骗程序思维他们正在读取和写入文件。
一种可能的解决方案是使用某种伪文件,其中所有读取、写入和查找请求都被重定向到我可以编写的程序,然后该程序可以通过与数据库的通信来合成正确的响应。这个任务听起来有点像 NFS,所以也许这是可能的。我应该阅读什么内容才能使其发挥作用?
答案1
你所描述的是保险丝。用户模式文件系统。它们看起来像文件系统,但具有自定义的内部结构。
一些现有的有:
- 通过 ssh 的 sshfs 文件系统。
- tar / zip fs 挂载 tar / zip 文件。
- 云FS
- ipfs
- ntfs
- 加密文件系统
- 网络达夫
- 文件传输协议
- 亚马逊S3