当Dropbox在其计算机上遇到与其已知的文件的云版本不同的文件时,它如何决定是通过将本地文件覆盖为云文件来同步文件还是通过使用云文件覆盖来同步文件?本地文件?
改写:
如果文件的服务器副本和本地副本不同,
如果启动了保管箱程序并完成了同步,
那么这两个文件将是相同的。
这两个文件也将与旧文件之一相同。我的问题是---旧服务器副本或旧本地副本?它如何决定?
当Dropbox在其计算机上遇到与其已知的文件的云版本不同的文件时,它如何决定是通过将本地文件覆盖为云文件来同步文件还是通过使用云文件覆盖来同步文件?本地文件?
改写:
如果文件的服务器副本和本地副本不同,
如果启动了保管箱程序并完成了同步,
那么这两个文件将是相同的。
这两个文件也将与旧文件之一相同。我的问题是---旧服务器副本或旧本地副本?它如何决定?
Answers:
我不知道这样做的技术性,但是我确实遇到了这样的情况,我和我的助手操作着一个通用的保管箱,其中两台不同的计算机在不同的时间打开和关闭。
您问题的答案是,当您与Cloud连接时,Dropbox知道(以某种方式)最初在您的计算机上同步了Cloud当前版本。因此,如果您的计算机版本不同,则该版本将被同步到云。
如果两台计算机(例如A和B)使用相同的保管箱,并且每台都脱机进行更改,则第一台计算机加电(假设它是计算机A)将生成其更新到云的同步。因此,现在A和Cloud上将有相同的版本(包含A更新)。
当计算机B通电时,Dropbox将意识到计算机B的文件版本不仅与当前的云版本(正常)不同,而且与Dropbox上次同步它的时间不同。因此,如果要将B的文件同步到A版本,B的更改将丢失。因此,Dropbox要做的是复制B版本,然后在文件名中添加“ B的冲突文件”。然后将B的原始文件同步到A更新。包含B更新的冲突文件随后被同步到云中,并回滚到A。
由选择性同步引起的删除和冲突以类似的方式处理
如果其中一台计算机在关机前未关闭文件,也会发生冲突。同步不会在打开的文件上发生,因此在这种情况下,B的更新将是已同步的更新,而A的打开的文件将最终冲突。协调起来可能会非常痛苦,但这是我们的错,而不是Dropbox的错。
希望这可以帮助。
我有部分信息可以开始回答这个问题。我不确定这对有经验的用户有多大帮助,但我知道像我这样的新用户会发现此报告有用。
顺便说一句,解决这个问题使我更加困惑,一个令人难以置信的基本问题没有任何官方或权威的答案。缺乏可用的文档或讨论告诉我,Dropbox的用户可以接受Dropbox实际所做的任何事情,就像他们在这种情况下所期望的那样。(即,我什至不会说用户抱有保管箱的具体期望)
在我的示例中,计算机A和计算机B永远不会同时打开。想象一下,有一个用户在家和工作时不协作地工作,而每台计算机在关闭后又回到另一台计算机上就被关闭了。
当一台计算机的保管箱文件夹与云保管箱文件夹不同时会发生什么?为了最大程度的清晰起见,我更喜欢想象dropbox.exe
一台计算机有一个空的保管箱文件夹时如何反应。将dropbox.exe
那些丢失的文件视为“删除”(这意味着它将从云保管箱文件夹中删除它们)或“过期”(这意味着它将在本地保管箱文件夹中创建它们的新副本)。
从行为显而易见的情况开始: 计算机A打开,计算机B关闭。如果dropbox.exe
正在运行并且对A进行了更改,则这些更改将传播到云文件夹,反之亦然。因此,目前,如果A的文件夹被清空,则这些丢失的文件/文件夹被视为“删除”,而云文件夹被清空。
假设B有一个空的保管箱文件夹,而A创建文件并将这些文件同步到云保管箱文件夹。如果我们切换到计算机B,则情况是dropbox.exe
将B的空保管箱文件夹解释为“过期”,并且在B上创建了来自云文件夹的新副本。
现在就不那么明显了: 假设我们在B中进行了一些更改,并将这些更改同步到cloud dropbox文件夹。如果我们切换到计算机A并在没有先运行的情况下dropbox.exe
---我们删除了A的保管箱文件夹中的内容,dropbox.exe
此后将运行什么?在这种情况下,dropbox.exe
会将丢失的文件/文件夹解释为应传播到云保管箱文件夹的新删除项。
我发现这令人困惑,在情况2和3中,您已dropbox.exe
打开并在与云文件夹不同的新计算机上遇到相同的“新”状态,但其行为有所不同。
如果您想发明一个解释dropbox.exe
操作方式的规则,显然您不能假定它是三个变量的函数:(1)它在计算机上当前所见,(2)在云文件夹中所见,以及(3) )最后一台计算机要与云文件夹同步。(!!!)
也许额外的变量是Dropbox会记住每台计算机上次同步到云文件夹的内容。在情况2中,我们可以假设计算机B上一次同步时,它同步了一个空文件夹。在情况3中,Dropbox记得计算机A上一次同步时,它同步了一个文件夹,该文件夹与当前在文件夹中找到的文件夹不同。
dropbox.exe
仅仅检查目录脱机和联机。就像您在上一段中所说的那样,dropbox会记录本地和在线存储的每个文件的记录,因此它确切地知道何时同步/什么同步(何时/什么不同步)。看看我的Dropbox-DIR在C:\Users\<name>\AppData\Roaming\Dropbox
。您会看到很多.dbx
-files,其中dropbox会保留该信息(不仅包括日期,而且还包括校验和等)。(删除这些文件和保管箱会严重困扰您在线和离线保管箱目录;)
与Dropbox桌面应用程序不断检查文件中的更改不同,该移动应用程序通常仅按需同步。这样可以防止Dropbox占用您的所有带宽和空间。
它是如何做到的?
他们的网站上也提到了这一点:
在传输文件之前,我们将新文件与以前的版本进行比较,仅发送更改后的文件。这称为“二进制差异”,适用于任何文件类型。在传输文件之前,Dropbox会压缩文件(不会丢失任何数据或质量)。这样,您也不必担心Dropbox重新上传文件或浪费带宽。