问题标签 [virtualfilesystem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
filesystems - macFuse 需要 Mac OS 11+ 上的恢复模式
自 Mac OS 11 Big Sur 发布以来,Apple 仅允许在恢复模式下安装 kext 驱动程序。它还禁止从 Apple 商店安装 kext 驱动程序。我猜这是 macFuse 的终结,至少对于虚拟/云文件系统而言。迁移路径是什么以及如何为 Mac OS 11+ 构建虚拟文件系统,特别是用于文档管理和云存储,类似于 OneDrive、DropBox 等。
我也可以猜测类似的问题也可能出现在 Windows 上。我可以想象,微软会效仿苹果的做法,在未来的版本中出于这些目的在 Windows 上禁止文件系统驱动程序和过滤器。如果发生这种情况,任何有关未来迁移的提示将不胜感激。
virtualfilesystem - 适用于 Linux 的虚拟文件系统 API/云提供商同步 API?
微软和苹果最近推出了用于将云存储文件同步到本地文件系统的 API:适用于 Windows 的Cloud Provider API(也称为 Cloud Filter API)和适用于 Apple 和 iOS 的File Provider API。例如,Microsoft OneDrive 客户端现在构建在这个新 API 之上。
是否有适用于主要 Linux 风格的类似 API?
synchronization - 如何克服基于 Cloud Sync Engine 的虚拟驱动器中文件下载的 4Gb 限制?
我正在使用 Cloud Files API 和这个项目实现一个虚拟驱动器。但是,下载会停留在大于 4Gb 的文件上。进度停止,并且永远不会再次调用 TransferDataAsync(),即使文件中还有更多字节。
macos - 如何使用 C++ / Objective-C 在 windows 和 mac 上识别虚拟(仅限远程)文件
使用例如带有 Qsync 的 qnap 或最新版本的 nextcloud 允许“虚拟文件” - 我的意思是文件似乎在您的文件系统上,但实际上是在打开文件时从您的 NAS / 云存储中检索的文件。
在 Windows 上,我认为我可以检查FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS
文件属性是否已设置 - 包括 nextcloud 和 Qsync。
在 Mac 上我很挣扎,因为我找不到任何接近这些属性的东西。似乎我可以检查NSURLFileAllocatedSizeKey
vs.NSURLFileSizeKey
以查看文件是否是本地文件 - 但这似乎不是防弹的。iCloud.iCloud
为虚拟文件附加了一个非常明显的内容,所以我想知道是否有任何类似于 windows 文件属性的东西?
winapi - 在 Cloud Files API 中调用了两次删除
我正在尝试使用 Cloud Files API 实现虚拟驱动器。我无法使删除操作起作用。由于某种原因,CF_CALLBACK_TYPE_NOTIFY_DELETE 回调被调用了两次。
我使用两种不同的方法在 C++ 和 C# 中构建了两个示例,在这两种情况下我得到了相同的结果:
- CF_CALLBACK_TYPE_NOTIFY_DELETE 被调用。
- 再次调用 CF_CALLBACK_TYPE_NOTIFY_DELETE。
- CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION 被调用。
这种行为有点令人困惑。谁能解释为什么会发生这种情况以及在第二次通话中我应该做什么?我可以以某种方式区分它们并忽略其中一个调用吗?
winapi - 使用覆盖重命名文件夹会删除 Cloud Files API 中的源文件夹
我正在使用 Cloud Files API 创建一个虚拟文件系统。我正在尝试对文件夹实施重命名/移动和删除操作。具有覆盖方案的重命名文件夹(当目标文件夹存在时)行为令人困惑。在 Windows 探索中,我试图将 Z:\Folder1 重命名为 Z:\Folder2 而 Z:\Folder2 已经存在。在执行重命名操作之前,正在通过调用 CF_CALLBACK_TYPE_NOTIFY_DELETE 回调删除源文件夹。
这是我使用 Cloud Filter API 获得的回调序列:
- 在源文件夹上调用 CF_CALLBACK_TYPE_NOTIFY_DELETE。
- 源文件夹中的每个文件都被移动到目标文件夹。
- 在源文件夹上调用 CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION。
因此,无法在 CF_CALLBACK_TYPE_NOTIFY_DELETE 回调中删除我存储中的文件夹,因为这将在移动操作之前删除所有文件。也没有办法区分 CF_CALLBACK_TYPE_NOTIFY_DELETE 中的删除和移动操作(所以我可以在移动操作中忽略它)。
如何在 Cloud Files API 中正确实现删除和重命名/移动回调?
winapi - 云文件 API 中的删除在 Windows 21H1 上停止工作
我正在使用 Windows Cloud Filter API 创建虚拟驱动器。删除回调在 Windows Home 21H1 19043.1165 (cldflt.sys 10.0.19041.1110) 上按预期停止工作。如果我从 CF_CALLBACK_TYPE_NOTIFY_DELETE 返回错误代码,则无论如何都会删除脱水占位符,无论我返回的错误代码如何:
我已经测试了从 Windows 资源管理器和 Windows 21H1 上的命令提示符删除。结果是相同的 - 占位符被删除。
我还重新测试了旧版本的删除 - Windows 10 Pro 1909 (18363.1556) (cldflt.sys 10.0.18362.1533) 并且一切都按预期工作 - 如果我从删除回调中返回错误,则文件不会被删除。
我猜这是最新 Windows 更新中的错误。有人能找到解决这种行为的方法吗?
database - 带有虚拟文件系统的 lmdb
我想在 stm32 微控制器(ARM Cortex M4)上使用 lmdb。我没有操作系统,但我安装了 littlefs 作为文件系统。
对于 sqlite,存在一种称为“VFS”的机制,带有函数 sqlite3_vfs_register(),我可以在其中将 littlefs 与 sqlite 链接,但我还没有为 lmdb 找到类似的东西。
目前我只看到 3 种机制。
- 注册“VFS”的功能,但不幸的是我找不到
- 将系统调用“打开、读取、写入等”重定向到 littlefs 函数
- 编写一个补丁,用 littlefs 函数替换系统调用“打开、读取、写入等”。
我的问题是
- 是否可以在具有自己的文件系统的 stm32 上使用 lmdb,还是必须使用其他数据库?
- 将 lmdb 与 littlefs 等文件系统连接的最佳机制是什么?