在 Windows 和 iOS 之间共享文件时,从技术角度来看,iCloud 驱动器是如何工作的?
Posted
技术标签:
【中文标题】在 Windows 和 iOS 之间共享文件时,从技术角度来看,iCloud 驱动器是如何工作的?【英文标题】:How does the iCloud drive work from a technical standpoint when sharing files between Windows and iOS? 【发布时间】:2021-12-25 00:09:23 【问题描述】:我想了解 iCloud 驱动器在幕后的工作原理,特别是在通过 iCloud 驱动器在 PC 和 ios 应用程序之间共享文件时。 在 Windows 10 上安装 Microsoft iCloud 程序后,它会在文件资源管理器中显示 iCloud 驱动器:
-
我认为它只是 C:\users\username\iCloudDrive 目录的快捷方式?
当您将文件复制到 iCloudDrive 时,它会复制到本地 iCloudDrive 目录?
在后台运行的“iCloud Drive”进程检查该本地目录中的文件和文件夹是否有任何更改?如何?它是使用“最后修改的”日期时间戳还是文件系统通知更改过程?
该过程然后将整个文件复制到 iCloud 服务?它将状态更新为“绿色复选标记”
当 iCloud 中的文件发生变化时,使用什么机制来更新本地文件?
如果两个文件同时更改,它是否会阻止一个文件覆盖另一个文件?它会在更新文件时“锁定”文件吗?
相同的机制是否适用于 iOS 应用程序访问 iCloudDrive 上的文件(首先保存到本地文件系统,后台进程处理同步、锁定等)?
在日志中,我看到了对 CheckIfToHydrateOrDehydrateFile 的引用。在这种情况下,这意味着什么?
【问题讨论】:
【参考方案1】:我不为 Apple 工作,也不知道它是如何工作的,但这里是我对每个问题的逻辑假设(具有大量一般技术知识)。
-
是
当您从 iPhone(或其他 Apple 设备)向 iCloud 上传内容时,您的 PC (Windows PC) 会在后台运行一个进程,该进程会询问 iCloud 服务器是否有任何新内容,如果有,它将下载它。反过来也是一样。
您的 PC (Windows PC) 上的后台进程通过使用 SHA-256 等哈希算法对每个文件进行哈希处理并检查从文件中获得的最后一个哈希值的数据库,知道是否有任何更改,如果hash 不一样,我们把文件上传到 iCloud。
是的,您的 PC (Windows PC) 上的 iCloud 后台进程会将检测到更改的所有文件(参见编号 3)上传到 iCloud 服务器,完成后,它会将那个绿色的小复选标记放在文件的一侧。
见 2 号
如果您的意思是如果同一文件(比如说“document.txt”)在 PC(Windows PC)和 iPhone(或其他 Apple 设备)上发生更改,iCloud 会做什么,那么答案是它取决于“机会”。让我解释一下,这取决于什么设备在物理上更接近路由器,是否通过电缆连接,何时(毫秒精度)您打开设备,设备打开 iCloud 服务需要多少时间,设备速度、互联网速度、内部 Apple 服务器速度等。基本上,影响什么请求首先到达 Apple 服务器的一大堆因素。不,同时访问服务器的请求不会发生,因为有一个动作队列可以抓取一个请求直到另一个请求并将其放入队列中直到轮到它,并且队列不能有两个请求同一回合。
是的
我不知道,因为这是 Apple 为该行动制定的信息,必须由在 Apple 工作的人来回答。
我希望这有助于回答您的问题。
【讨论】:
以上是关于在 Windows 和 iOS 之间共享文件时,从技术角度来看,iCloud 驱动器是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章
在 mac 和 windows 之间共享解决方案时对包的路径文件引用不正确