我正在开发一个应用程序,它应该通过网络安装一个文件夹。它应该与 SMB 挂载的文件夹类似,只是服务器不使用 SMB 协议。与此类似:服务器 A 是一个 HTTP 服务器,其中包含文件,客户端 B 应该能够挂载这些文件,以便能够直接访问它们而无需先下载它们(流式传输)。因此,客户端应该能够流式传输文件,即在任意位置访问文件。此外,存储在服务器 A 上的文件以特定方式进行编码、压缩、加密和打包,因此我需要在将它们呈现给虚拟文件系统之前对它们进行解码(进行一些内部处理)。客户端应该具有只读访问权限。我希望客户端在 Windows 和 Linux 上可用。它应该如下所示:
客户端挂载了一个文件夹,想要访问位置 1248989 的 /virtualfolder/data.file。存储在服务器上的数据被分割成任意长度的块(假设它是 1 兆字节)。然后我需要下载与字节 1000000 - 1999999 相对应的文件部分,解码它们,缓存它们,然后用户可以访问这些数据。
当然,我的解码过程是在内部完成的,我只需要一个 API 来在操作系统上创建一个虚拟文件夹(或文件系统),它会显示文件的名称及其大小并让用户访问它们。
它应该看起来像这样:[OS] <-virtual filesystem API-> [Client] <-some protocol-> [Server]
访问文件应如下所示:
[OS] 我想从文件 /vfs/somefile.tar 中获取字节 0-255
[客户端] 从服务器的文件 /vfs/somefile.tar 中检索块 0-999999。这对应于块 B5F997084DC8687。下载 B5F997084DC8687 并解码。
[客户端] 这里是 /vfs/somefile.tar 从 0-255。
[OS] 我想从文件 /vfs/somefile.tar 中获取字节 256-511
[客户端] 这对应于 B5F997084DC8687。已下载并缓存此文件。
[客户端] 这是 256-511 的 /vfs/somefile.tar。
我认为非常简单。是否有用于此类事情的简单 API?