问题标签 [virtual-drive]

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.

0 投票
1 回答
43 浏览

synchronization - 如何克服基于 Cloud Sync Engine 的虚拟驱动器中文件下载的 4Gb 限制?

我正在使用 Cloud Files API 和这个项目实现一个虚拟驱动器。但是,下载会停留在大于 4Gb 的文件上。进度停止,并且永远不会再次调用 TransferDataAsync(),即使文件中还有更多字节。

0 投票
0 回答
83 浏览

macos - 如何在文件提供程序中的 macOS 上实现“始终保留在此设备上”?

我正在macOS 上实现文件提供程序。我看到 OneDrive 具有“始终保留在此设备上”和“释放空间”菜单的离线模式:

在此处输入图像描述

在 Windows 上,此功能由 Pinned 和 Unpinned 文件属性以及 CfHydratePlaceholder() 和 CfDehydraPlaceholder() Windows API 提供。如何在 macOS 上实现此功能?是否有任何特定的属性或文件提供程序 API 来支持它?

0 投票
1 回答
63 浏览

winapi - 使用覆盖重命名文件夹会删除 Cloud Files API 中的源文件夹

我正在使用 Cloud Files API 创建一个虚拟文件系统。我正在尝试对文件夹实施重命名/移动和删除操作。具有覆盖方案的重命名文件夹(当目标文件夹存在时)行为令人困惑。在 Windows 探索中,我试图将 Z:\Folder1 重命名为 Z:\Folder2 而 Z:\Folder2 已经存在。在执行重命名操作之前,正在通过调用 CF_CALLBACK_TYPE_NOTIFY_DELETE 回调删除源文件夹。

这是我使用 Cloud Filter API 获得的回调序列:

  1. 在源文件夹上调用 CF_CALLBACK_TYPE_NOTIFY_DELETE。
  2. 源文件夹中的每个文件都被移动到目标文件夹。
  3. 在源文件夹上调用 CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION。

因此,无法在 CF_CALLBACK_TYPE_NOTIFY_DELETE 回调中删除我存储中的文件夹,因为这将在移动操作之前删除所有文件。也没有办法区分 CF_CALLBACK_TYPE_NOTIFY_DELETE 中的删除和移动操作(所以我可以在移动操作中忽略它)。

如何在 Cloud Files API 中正确实现删除和重命名/移动回调?

0 投票
2 回答
121 浏览

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 更新中的错误。有人能找到解决这种行为的方法吗?

0 投票
0 回答
31 浏览

pyspark - pyspark saveAsTable 不保存到虚拟驱动器(谷歌驱动器)

我的代码如下:

它从映射到驱动器“G:”的 Google Drive 运行。操作系统为 Windows 10。

我收到一个错误:

java.io.IOException:Mkdirs 未能创建文件:/G:/My%20Drive/Colab_Notebooks/Finance/Stock_prediction/download_from_CC/spark-warehouse/filtered/_temporary/0/_temporary/attempt_202110102032126212088686812225137_0001_m_000000_1(存在= /G:/My Drive/Colab_Notebooks/Finance/Stock_prediction/download_from_CC)

保存到正常的本地驱动器工作正常。

据我了解-该错误是由 pyspark 在路径中添加“file:/”引起的。如何预防?

0 投票
1 回答
27 浏览

filesystems - 如何避免 AutoCAD DWG 文件在保存过程中被重命名和重新创建?

我在使用 Cloud Filter API 创建的虚拟驱动器上编辑 DWG 文件。当我使用 AutoCAD 编辑 DWG 文件时,该文件被重命名,而不是重新创建。以下是我在 AutoCAD 中保存文件时文件系统中的操作顺序:

我在同步根上尝试了几种类型的补水策略(Full、Progressive 和 Partial)和一些补水策略修改器(DehydrationAllowed、ValidationRequired 和 None),但没有成功。

我知道可以避免文件重新创建,至少它不是使用 SharePoint/OneDrive 重新创建的。AutoCAD 以某种方式正确检测到 OneDrive。

如何避免在保存操作期间重新创建文件?

0 投票
0 回答
42 浏览

filesystems - 如何使用 Cloud Filter API (cfapi) 实现 Streaming Mode?

我正在尝试使用 Cloud Filter API 实现流模式。我的目标是创建一个具有高安全性的驱动器——文件内容只有在驱动器在线并且客户端计算机上没有存储数据时才可用。如果权限被撤销,磁盘上将没有文件内容。

我在注册同步根时将HydrationPolicyModifier设置为 StreamingAllowed:

根据StorageProviderHydrationPolicyModifier 枚举文档, StreamingAllowed 值应防止任何数据存储在磁盘上:

此修饰符不允许平台将任何数据存储在同步提供程序返回的磁盘上。

但是,当我卸载同步根目录或应用程序崩溃时,水合文件内容仍保留在文件系统中。即使在机器重新启动后它也不会被删除。我使用两种不同的驱动器实现验证了这一点,其中之一是 Cloud Mirror Microsoft 示例。