Dropbox同步如何工作?

时间:2011-08-15 00:23:36

标签: algorithm synchronization dropbox file-transfer transfer

我想知道dropBox如何在不替换或重新上传文件到dropbox服务器的情况下同步大数据文件

示例:加密的zip存档

假设我的1GB加密zip存档文件在我的计算机和Dropbox服务器上完全同步,

在我的计算机上,我在该zip存档文件中添加了一个大小约为5MB的文件,然后将该文件保存在我的计算机上,

dropbox能够同步zip存档文件而无需再次重新上传整个文件,而只是通过我所做的小改动来更新它。

TrueCrypt容器也以这种方式工作

非常感谢任何关键字,想法,主题,评论,链接和代码。

2 个答案:

答案 0 :(得分:8)

Dropbox使用rsync算法生成delta文件,区别在于从文件A1到文件A2。由于dropbox已经有文件A1,因此只有delta(通常远小于A2)才会上传到Dropbox服务器。然后可以将增量文件应用于文件A1,将其转换为文件A2。

您可以在此处详细了解该算法。 http://en.wikipedia.org/wiki/Rdiff-backup#Variations

可以在此处找到增量创建背后的库的源代码。 http://librsync.sourceforge.net/

答案 1 :(得分:1)

我的第一个想法(已经很晚了!)是它可能在块级执行哈希。

例如,它可能会为每个64k段生成一个哈希值,然后为每个具有不同哈希值的部分上传整个段。