virtualfilesystem - 适用于 Linux 的虚拟文件系统 API/云提供商同步 API?

标签 virtualfilesystem virtual-drive

Microsoft 和 Apple 最近推出了一个用于将云存储文件同步到本地文件系统的 API:Cloud Provider API (也称为 Cloud Filter API)适用于 Windows 和 File Provider API适用于苹果和 iOS。例如,Microsoft OneDrive 客户端现在构建在这个新 API 之上。

是否有适用于主要 Linux 风格的类似 API?

最佳答案

据我所知,我认为在 Linux 中没有任何类似的 API 可以实现这一点。但是,我们可以使用 libfuse ( https://github.com/libfuse/libfuse ) 来实现相同的目的。早些时候,Dropbox、Box、Google Drive、NextCloud 和 Filr 等云存储供应商在 File Provider API 和 Cloud Provider API(这是非常新的技术,但针对 macOS 和 Windows 进行了标准化)出现之前使用了相同的库。

以我有限的知识,我认为 libfuse 利用内核扩展来创建一个虚拟文件系统,您可以在其中实现文件系统调用。在 libfuse 之上编写了许多抽象层,用于不同的编程语言,如 rust、objc/c++、python 等...

例如。

Apple 停止从 macOS 11 加载第 3 方内核扩展,因此他们为基于 fuse 的云存储客户端提供的替代产品是 File Provider API。

在 Windows 中,在 Cloud Storage API 出现之前,使用 Minifilter 驱动程序 (https://learn.microsoft.com/en-us/windows-hardware/drivers/ifs/filter-manager-concepts) 可以实现同样的效果

这些替代 API 由 Apple 和 Microsoft 为其各自的平台提供,主要是出于安全原因。内核或驱动程序代码的一个小缺陷对于整个操作系统来说都是致命的。

因此,我认为 libfuse 是目前基于 Linux 操作系统的最佳方法,直到有人提出更可行的解决方案。

关于virtualfilesystem - 适用于 Linux 的虚拟文件系统 API/云提供商同步 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66467255/

相关文章:

python - 使用 python 中的虚拟文件改进 CSV 推送到 MySQL

php - 如何用PHP和Flex实现虚拟文件系统?

linux - 如何在 Rust 中创建虚拟文件系统?

kotlin - 一种有效的方法来锁定Kotlin中对特定资源的访问

windows - 如何在 Windows 资源管理器中添加虚拟驱动程序,如 CD Emulation

c# - 用于远程 Web 服务的 Windows 虚拟磁盘

language-agnostic - 跨操作系统虚拟驱动器功能

C#:在计算机中创建虚拟驱动器