Answers:
Dropbox使用二进制diff算法将所有文件分解为块,并且仅上传云中尚无的块。所有这些都是在您的计算机上本地完成的。
Dropbox不仅使用已上传的文件,还将每个人的文件聚合到一个块数据库中,并针对该数据库检查每个本地块哈希。
这意味着,如果其他人已经上传了与您自己相同的文件(例如,最新的Ubuntu ISO),则上传似乎是即时的,因为没有要上传的内容,但是如果您要更新定期更改的文件,例如您的备份文件,则仅上传更改。如果您上传一个完全唯一的文件,则必须等待所有文件上传。
对于它的价值,Dropbox声称在每个文件的每4MB上创建哈希。这样,如果您更改了一个连续的2MB的100MB文件,则可能仅需要上传4MB(如果您进入第二个4MB块,则只需上传8MB)即可重新同步该文件。
我们使用的哈希仅适用于4MB的文件块
资料来源:https : //blogs.dropbox.com/tech/2016/05/inside-the-magic-pocket/
同样重要的是要突出显示它在更改文件时不会一次上传整个文件。例如,如果您有一个重量为2GB的唯一文件,例如,对于您持有的加密磁盘驱动器(例如,当您使用truecrypt或pgpdisk时),并且您只更改了加密磁盘中的几个文件,那么dropbox将仅上传块有效地改变了。因此,例如,如果您将2GB的pgpdisk文件上传到dropbox,然后进行更改(例如说这2GB中的100MB),那么dropbox将足够智能以检测和更新已更改的内容。因此,您不会浪费您的上传带宽来上传已经存在的内容。
我看到的保管箱团队正在使用的另一个功能是使保管箱能够检测本地网络上运行的保管箱的其他实例,并在它们之间同步信息。例如,您有一台笔记本电脑和一台台式机,并且两者都具有相同的保管箱帐户,并且您在台式机上更新文件-当您插入笔记本电脑时,台式机即刻与“云”同步-而不是转到在云端,Dropbox会直接从您的台式机下载差异文件,而不会浪费您的下载带宽。这仍然会发生-但将是一个不错的功能!