我想知道dropBox如何在不替换或重新上传文件到dropbox服务器的情况下同步大数据文件
示例:加密的zip存档
假设我的1GB加密zip存档文件在我的计算机和Dropbox服务器上完全同步,
在我的计算机上,我在该zip存档文件中添加了一个大小约为5MB的文件,然后将该文件保存在我的计算机上,
dropbox能够同步zip存档文件而无需再次重新上传整个文件,而只是通过我所做的小改动来更新它。
TrueCrypt容器也以这种方式工作
非常感谢任何关键字,想法,主题,评论,链接和代码。
答案 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段生成一个哈希值,然后为每个具有不同哈希值的部分上传整个段。