Dropbox使用delta编码算法来查找两个文件之间的差异,第一个是修改文件,第二个是旧文件。但是,如果他们存储旧文件,他们如何找到差异,因为他们只有新文件,他们没有旧文件。首先无法从服务器下载文件然后找到差异,他们正在使用哪种方法?
答案 0 :(得分:0)
Dropbox会将有关您文件的元数据保存在RAM中以防止代价高昂 同步期间的数据库访问。元数据包括文件路径 在您的Dropbox,校验和,修改时间等。我们正在努力 努力使这些信息更紧凑,并正在努力 几个方面来改善内存使用。我们的技术不受限制 重写Python和编写自定义内存分配器 : - 。)
为了做到这一点,我猜他们会有某种特殊的处理程序,当用户将文件复制到dropbox文件夹时,它们允许它们执行delta diff。为此,像.Net的FileSystemWatcher类这样的东西会与你自己的传递shell复制处理程序一起工作(所以你可以保留文件的临时副本,直到差异完成,如果需要的话完成)。
另外,作为旁注,dropbox是用python和wxWdigets编写的。
您可能会发现一些对delta压缩有用的网站: