Dropbox 如何确定何时覆盖本地文件以及何时覆盖云文件?

Dropbox 如何确定何时覆盖本地文件以及何时覆盖云文件?

当 Dropbox 遇到计算机上的文件与其所知的云版本不同时,它如何决定是否通过使用云文件覆盖本地文件来同步它们,还是通过使用本地文件覆盖云文件来同步它们?

重新表述:

  • 如果文件的服务器副本和本地副本不同,

  • 如果 Dropbox 程序启动并完成同步,

  • 那么这两个文件将是相同的。

这两个文件也将与旧文件。我的问题是哪个 --- 旧服务器副本还是旧本地副本?它如何决定?

答案1

我不知道这其中的技术细节,但我确实遇到过这样的情况:我和我的助手使用两台不同的计算机在不同时间开启和关闭一个公共的 Dropbox。

您的问题的答案是,当您连接到云端时,Dropbox 会(以某种方式)知道云端当前的版本最初是从您的计算机同步的。因此,如果您的计算机版本不同,则该版本将同步到云端。

如果两台计算机(例如 A 和 B)使用同一个 Dropbox,并且每台计算机都离线进行更改,则第一台计算机启动时(假设是计算机 A)会将其更新同步到云端。因此现在 A 和云端将有相同的版本(包含 A 的更新)。

当计算机 B 启动时,Dropbox 会意识到计算机 B 的文件版本不仅与当前云版本不同(这是正常的),而且与 Dropbox 上次从其同步时的文件版本也不同。因此,如果将 B 的文件同步到 A 版本,B 的更改将会丢失。因此,Dropbox 会复制 B 版本,并在文件名中添加“B 的冲突文件”。然后,B 的原始文件将同步到 A 的更新。然后,包含 B 更新的冲突文件将同步到云并返回到 A。

删除和选择性同步引起的冲突以类似的方式处理

如果其中一台电脑在关机前没有关闭文件,也会出现冲突。打开的文件不会同步,因此在这种情况下,B 的更新将被同步,而 A 的打开文件将最终导致冲突。协调起来可能非常麻烦,但这是我们的错,而不是 Dropbox 的错。

希望这可以帮助。

答案2

我掌握的部分信息可以开始回答这个问题。我不确定这对经验丰富的用户有多大用处,但我知道像我这样的新用户会发现这份报告很有帮助。

顺便说一句,解决这个问题让我更加困惑,为什么一个非常基本的问题没有任何官方或权威的答案。缺乏可用的文档或讨论告诉我,Dropbox 的用户对 Dropbox 的实际行为感到满意,因为他们希望它在那些情况下能做到。(也就是说,我甚至不会说用户对 Dropbox 有一个具体的期望)

Dropbox 行为示例:

在我的示例中,计算机 A 和计算机 B 永远不会同时打开。想象一下,一个用户在家和工作时不进行协作工作,每台计算机都会关闭,然后再回到另一台计算机。

如果一台电脑的 Dropbox 文件夹与云端 Dropbox 文件夹不一致,会发生什么情况?为了最大程度地清晰起见,我更喜欢想象dropbox.exe当一台电脑有空的dropbox 文件夹。将把dropbox.exe这些丢失的文件视为“删除”(这意味着它将从云 dropbox 文件夹中删除它们)或“过期”(这意味着它将在本地 dropbox 文件夹中创建它们的新副本)。

  1. 从行为显而易见的情况开始: 计算机 A 处于开启状态,计算机 B 处于关闭状态。如果计算机 Adropbox.exe正在运行并对计算机 A 进行了更改,则这些更改会传播到云文件夹,反之则不然。因此,目前,如果计算机 A 的文件夹被清空,则这些丢失的文件/文件夹将被视为“删除”,云文件夹将被清空。

  2. 假设 B 有一个空的 Dropbox 文件夹,A 创建文件并将其同步到云 Dropbox 文件夹。如果我们切换到计算机 B,情况是它将把dropbox.exeB 的空 Dropbox 文件夹解释为“过期”,并在 B 上创建来自云文件夹的新副本。

  3. 现在来看看不太明显的: 假设我们在 B 中做了一些更改,并将这些更改同步到云 Dropbox 文件夹。如果我们切换到计算机 A,并且 --- 未先运行dropbox.exe--- 我们删除了 A 的 Dropbox 文件夹中的内容,dropbox.exe之后的运行会做什么?在这种情况下,dropbox.exe会将丢失的文件/文件夹解释为应传播到云 Dropbox 文件夹的新删除。

我觉得令人困惑的是,在情况 2 和 3 中,您dropbox.exe在新计算机上打开并遇到与云文件夹不同的相同“新鲜”状态,但它的行为会有所不同。

如果你想发明一条规则来解释如何dropbox.exe运作,你显然不能假设它是三个变量的函数:(1)它现在在计算机上看到的内容,(2)它在云文件夹中看到的内容,以及(3)哪台计算机最后与云文件夹同步。(!!!)

也许额外的变量是 Dropbox 会记住每台计算机上次同步到云文件夹的内容。在情况 2 中,我们可能假设计算机 B 上次同步时同步了一个空文件夹。在情况 3 中,Dropbox 会记住计算机 A 上次同步时同步了一个与它目前在文件夹中找到的内容不同的文件夹。

答案3

来自Dropbox 常见问题解答

与 Dropbox 桌面应用程序不断检查文件是否有更改不同,移动应用程序通常仅在需要时同步。这可以防止 Dropbox 占用您的所有带宽和空间。

它是怎样做到的?

他们的地点

在传输文件之前,我们会将新文件与之前的版本进行比较,并仅发送更改的文件部分。这称为“二进制差异”,适用于任何文件类型。Dropbox 在传输文件之前也会压缩文件(不会造成任何数据或质量损失)。这样,您也不必担心 Dropbox 重新上传文件或浪费带宽。

相关内容