icloud-drive - 在 Windows 和 iOS 之间共享文件时,从技术角度来看,iCloud 驱动器如何工作?

标签 icloud-drive

我想了解 iCloud 驱动器在幕后是如何工作的,特别是当通过 iCloud 驱动器在 PC 和 iOS 应用程序之间共享文件时。 在 Windows 10 上安装 Microsoft iCloud 程序后,它会在文件资源管理器中显示 iCloud 驱动器:

  1. 我假设它只是 C:\users\username\iCloudDrive 目录的快捷方式?
  2. 当您将文件复制到 iCloudDrive 时,它​​会复制到本地 iCloudDrive 目录吗?
  3. 在后台运行的“iCloud Drive”进程检查本地目录中文件和文件夹的任何更改?如何?它使用“上次修改”日期时间戳还是文件系统通知进程更改?
  4. 然后该过程将整个文件复制到 iCloud 服务?它将状态更新为“绿色复选标记”
  5. 当 iCloud 中的文件发生变化时,使用什么机制来更新本地文件?
  6. 如果两个文件同时更改,是否可以防止一个文件覆盖另一个文件?它会在文件更新时“锁定”文件吗?
  7. 相同的机制是否适用于 iOS 应用访问 iCloudDrive 上的文件(首先保存到本地文件系统,后台进程处理同步、锁定等)?
  8. 在日志中我看到对 CheckIfToHydrateOrDehydrateFile 的引用。这在这种情况下意味着什么?

最佳答案

我不在 Apple 工作,也不知道它是如何工作的,但这是我对每个问题的逻辑假设(具有大量一般技术知识)。

  1. 当您从 iPhone(或其他 Apple 设备)向 iCloud 上传内容时,您的 PC(Windows PC)会在后台运行一个进程,询问 iCloud 服务器是否有任何新内容,如果有,它将下载它。反过来也是一样。
  2. 您的 PC (Windows PC) 上的后台进程通过使用 SHA-256 等哈希算法对每个文件进行哈希处理并检查它从文件中获得的最后一个哈希值的数据库来了解是否有任何更改,如果hash不一样,我们上传文件到iCloud。
  3. 是的,您 PC(Windows PC)上的 iCloud 后台进程会将任何已检测到更改的文件(参见编号 3)上传到 iCloud 服务器,完成后,它会在文件的一侧。
  4. 参见第 2 条
  5. 如果您的意思是如果同一个文件(比如说“document.txt”)在 PC (Windows PC) 和 iPhone(或其他 Apple 设备)上发生变化,iCloud 会做什么,那么答案就是它取决于“机会”。让我解释一下,这取决于什么设备在物理上更接近路由器,是否通过电缆连接,何时(毫秒级精度)打开设备,设备打开 iCloud 服务需要多少时间,设备速度、互联网速度、Apple 内部服务器速度等。基本上,影响请求首先到达 Apple 服务器的一大堆因素。不,同时访问服务器的请求不会发生,因为有一个操作队列可以捕获一个请求直到另一个请求并将其放入队列中直到轮到它并且队列不能同时有两个请求同一回合。
  6. 我不知道,因为这是 Apple 为该行动设置的消息,必须由在 Apple 工作的人来回答。

我希望这有助于回答您的问题。

关于icloud-drive - 在 Windows 和 iOS 之间共享文件时,从技术角度来看,iCloud 驱动器如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70477267/

相关文章:

apache - iCloud Drive 上的 macOS Sierra Sites 文件夹如何转移到本地主机?

iOS无处不在的文件没有上传到iCloud(模拟器)

iOS11 : Can't create folder again in iCloud drive once deleted manually

swift - 云中的 UserDefaults 与云中的核心数据

ios - UIDocumentPickerViewController - 每个被选择一次的文件然后变灰

ios - iCloud Drive 可以在 watchOS 上使用吗?

ios - 如何使用 swift 以编程方式将 pdf 文档保存到 iCloud Drive?

ios - 为什么不允许我的团队管理 iCloud 容器?