当 Dropbox 在自己的计算机上遇到与其所知道的该文件的云版本不同的文件时,它如何决定是应该通过用云文件覆盖本地文件来同步它们还是通过覆盖云文件来同步它们?本地文件?
改写:
如果文件的服务器副本和本地副本不同,
如果 Dropbox 程序启动并完成同步,
那么这两个文件将是相同的。
这两个文件也将与旧文件之一相同。我的问题是 --- 旧服务器副本还是旧本地副本?它如何决定?
小智 5
我不知道这其中的技术细节,但我确实遇到过这样的情况:我和我的助手操作一个公共保管箱,其中两台不同的计算机在不同时间打开和关闭。
您的问题的答案是,当您连接到云时,Dropbox 知道(以某种方式)当前在云上的版本最初是从您的计算机同步的。因此,如果您的计算机版本不同,则该版本将同步到云。
如果两台计算机(比如 A 和 B)使用同一个 Dropbox,并且每台都在离线状态下进行更改,那么第一台计算机(假设它是计算机 A)将在云中生成其更新的同步。所以现在在 A 和 Cloud 上会有相同的版本(包含 A 更新)。
当计算机 B 启动时,Dropbox 会意识到计算机 B 的文件版本不仅与当前的云版本(这是正常的)不同,而且与 Dropbox 上次同步的文件版本不同。因此,如果要将 B 的文件同步到 A 版本,则 B 的更改将丢失。所以Dropbox所做的就是复制B版本,并在文件名中添加“B的冲突文件”。B 的原始文件然后同步到 A 更新。然后将包含 B 更新的冲突文件同步到云并返回到 A。
选择性同步引起的删除和冲突以类似的方式处理
如果其中一台计算机在关机前没有关闭文件,也会发生冲突。同步不会发生在打开的文件上,因此在这种情况下,B 的更新将是同步的,而 A 的打开文件最终会发生冲突。协调起来可能会非常痛苦,但这是我们的错,而不是 Dropbox 的错。
希望这可以帮助。
我有部分信息可以开始回答这个问题。我不确定这对有经验的用户有多大用处,但我知道像我这样的新用户会发现此报告很有帮助。
顺便说一句,解决这个问题让我更加困惑,一个令人难以置信的基本问题为什么没有任何官方或权威的答案。缺乏可用的文档或讨论告诉我,Dropbox 的用户可以接受 Dropbox 实际所做的任何事情,就像他们在这种情况下期望它做的那样。(也就是说,我什至不会说用户对持有 Dropbox 有具体的期望)
在我的示例中,计算机 A 和计算机 B 绝不会同时打开电源。想象一下,一个用户在家里和工作中非协作地工作,每台计算机在返回另一台计算机之前都被关闭。
如果一台计算机的 Dropbox 文件夹与云 Dropbox 文件夹不同,会发生什么情况?为了最大程度地清晰起见,我更喜欢想象dropbox.exe
当一台计算机有一个空的保管箱文件夹时会如何反应。会将dropbox.exe
这些丢失的文件视为“删除”(这意味着它将从云保管箱文件夹中删除它们)或“过时”(这意味着它将在本地保管箱文件夹中创建它们的新副本)。
从行为明显明显的情况开始: 计算机 A 开启,计算机 B 关闭。如果dropbox.exe
正在运行并且对 A 进行了更改,则这些更改将传播到云文件夹,反之亦然。所以此时,如果A的文件夹被清空,那么这些丢失的文件/文件夹就被认为是“删除”,云文件夹被清空。
假设 B 有一个空的 Dropbox 文件夹,A 创建文件并将这些文件同步到云 Dropbox 文件夹。如果我们切换到计算机 B,情况是dropbox.exe
将 B 的空 dropbox 文件夹解释为“过时”,并在 B 上创建来自云文件夹的新副本。
现在来说不太明显的事情: 假设我们在 B 中进行一些更改并将这些更改同步到云保管箱文件夹。如果我们切换到计算机 A 并且 --- 没有先运行dropbox.exe
--- 我们删除 A 的 dropbox 文件夹中的内容,dropbox.exe
那么之后运行会做什么?在这种情况下dropbox.exe
,会将丢失的文件/文件夹解释为应传播到云保管箱文件夹的新删除内容。
我发现令人困惑的是,在情况 2 和 3 中,您已dropbox.exe
打开并在与云文件夹不同的新计算机上遇到相同的“新鲜”状态,但它的行为有所不同。
如果您想发明一个规则来解释如何dropbox.exe
操作,您显然不能假设它是三个变量的函数:(1)它现在在计算机上看到的内容,(2)它在云文件夹上看到的内容,以及(3) ) 哪台计算机最后与云文件夹同步。(!!!)
也许额外的变量是 Dropbox 会记住每台计算机上次同步到云文件夹的内容。在情况 2 中,我们可以假设计算机 B 上次同步时同步的是一个空文件夹。在情况 3 中,Dropbox 会记得上次计算机 A 同步时,它同步的文件夹与当前在文件夹中找到的文件夹不同。
归档时间: |
|
查看次数: |
17667 次 |
最近记录: |