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


10

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

改写:

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

  • 如果启动了保管箱程序并完成了同步,

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

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


嗯,不确定您的措辞是否更清楚。但是我认为Dropbox使用(版本)文件校验和(也许是更改日期)来查看文件是否需要上传。(它的本地数据库中有旧的)。如果校验和不同,则进行上载。如果在线,则其本地数据库中的版本具有较新的日期,且校验和与旧版本不同,则必须由其他人更改了该文件,并且该文件将被重命名并附加“冲突副本”。(当然这是推测,我还没有在网上找到对此的确认)
Rik

Answers:


5

我不知道这样做的技术性,但是我确实遇到了这样的情况,我和我的助手操作着一个通用的保管箱,其中两台不同的计算机在不同的时间打开和关闭。

您问题的答案是,当您与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的错。

希望这可以帮助。


1

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

顺便说一句,解决这个问题使我更加困惑,一个令人难以置信的基本问题没有任何官方或权威的答案。缺乏可用的文档或讨论告诉我,Dropbox的用户可以接受Dropbox实际所做的任何事情,就像他们在这种情况下所期望的那样。(即,我什至不会说用户抱有保管箱的具体期望)

Dropbox的行为示例:

在我的示例中,计算机A和计算机B永远不会同时打开。想象一下,有一个用户在家和工作时不协作地工作,而每台计算机在关闭后又回到另一台计算机上就被关闭了。

当一台计算机的保管箱文件夹与云保管箱文件夹不同时会发生什么?为了最大程度的清晰起见,我更喜欢想象dropbox.exe一台计算机有一个空的保管箱文件夹时如何反应。将dropbox.exe那些丢失的文件视为“删除”(这意味着它将从云保管箱文件夹中删除它们)或“过期”(这意味着它将在本地保管箱文件夹中创建它们的新副本)。

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

  2. 假设B有一个空的保管箱文件夹,而A创建文件并将这些文件同步到云保管箱文件夹。如果我们切换到计算机B,则情况是dropbox.exe将B的空保管箱文件夹解释为“过期”,并且在B上创建了来自云文件夹的新副本。

  3. 现在就不那么明显了: 假设我们在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上一次同步时,它同步了一个文件夹,该文件夹与当前在文件夹中找到的文件夹不同。


1
这并不是说dropbox.exe仅仅检查目录脱机和联机。就像您在上一段中所说的那样,dropbox会记录本地和在线存储的每个文件的记录,因此它确切地知道何时同步/什么同步(何时/什么不同步)。看看我的Dropbox-DIRC:\Users\<name>\AppData\Roaming\Dropbox。您会看到很多.dbx-files,其中dropbox会保留该信息(不仅包括日期,而且还包括校验和等)。(删除这些文件和保管箱会严重困扰您在线和离线保管箱目录;)
Rik 2014年

我不知道Dropbox完全不运行时,您如何期望它们跟踪更改。在方案2中,您将文件添加到Dropbox,S3正在从Dropbox删除文件。它们是两种不同的情况,因此行为应有所不同。不确定您的困惑源于何处。在打开Dropbox时,Dropbox会根据云中和硬盘上的内容做出最大的努力。使用Dropbox的最佳方法是始终保持打开状态。如果必须关闭计算机,请小心删除。至少DropBox可以为您提供30天的还原。您认为Dropbox不好,请尝试使用OneDrive。
太阳

“我不知道您希望Dropbox关闭时如何跟踪它” <-可以说,如果您期望S3与S2的行为有所不同,您会期望它。“如果关闭计算机,请小心删除” <-作为保管箱用户,这是我希望在文档中看到的警告。您说“它的行为应有所不同”非常容易,因为您没有确切说明它应该做什么。令我困扰的是,我找不到实际说明该做什么的文档。这就是为什么我感到困惑的原因:被迫猜测变量是什么并弄错了!
Ein 2014年

这实际上是一个非常相关的问题,我是从谷歌搜索这个问题而来的。我的笔记本电脑至少有一年没有与Dropbox完全同步,因为我空间不足。因此,我使用了选择性同步。现在,我已将HD升级到更大的SSD,并且我想再次同步所有内容。笔记本电脑上的某些文件夹中很多文件丢失,而且恐怕Dropbox在同步时会误解该怎么办。它将把云中的文件添加到本地文件夹中,还是将其从云中删除丢失的文件?我不太确定!
marlar

-2

Dropbox常见问题解答

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

它是如何做到的?

他们的网站上也提到了这一点:

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


1
我在问一个与压缩/差异无关的更基本的问题...它如何知道本地文件何时应成为新的“最新版本”以及本地文件是否“已过时”。
2013年

这与差异无关。当特定文件“过时”时,Dropbox API会比较这些差异,并决定同步该特定文件。除此之外,我找不到更多信息。Dropbox本身是封闭源,因此不再公开任何信息。
Karan Raj Baruah

我已经编辑了问题以重新表达我的要求,因为可能会发生一些混乱。另外,我无法解析您的第二句话。
2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.