2012-07-11 49 views
3

Dropbox的一个更好的功能是它可以保持上传文件的先前版本。Dropbox使用修订历史记录是什么?我如何添加自己的?

我们网站的一部分是一个类似的文件存储库(客户上传文件以将它们存储在异地),我们希望实现类似的功能。

Dropbox如何管理修订版本?他们是否使用了自动提交每个文件的搁置修订软件?或者他们只是推出自己的解决方案?

我希望有一个我可以使用的第三方库,因为它不是我们有时间从头开始做的事情。

感谢您提供任何帮助!

回答

4

他们很可能使用了自定义解决方案。您可以查看的可能方法是在文件系统上为每个版本存储一个单独的文件,为每个版本在数据库中存储单独的文件,或者为修改后的文件计算diff并存储该文件。

第三个选项是最好的,因为它使用最少的空间。

看看xdiff_file_bdiff(),它会计算两个文件(旧版本和新版本)的二进制差异。 xdiff库应该为您提供执行此操作所需的工具。你也可以使用像git这样的东西来进行版本控制,只需要使用PHP自动完成这个过程。您可能想要运行一些基准测试来了解哪种解决方案最快。

+0

我的理解是,DropBox背后的技术是相当秘密的,但同时他们承认它基于开源软件,所以你应该能够找到复制所有功能的方法。 – Purpletoucan 2012-07-11 14:54:33

+0

我不知道'xdiff_file_bdiff()';整齐。那么我会如何保存最初的版本,以及每个附加版本的增量?或者我会保留最新版本作为整个文件,并重新过去? – DOOManiac 2012-07-11 14:55:10

+0

是的,任何像DropBox这样的网站都会保持他们的竞争优势。我想他们正在使用一些开源二进制差异程序的变体。可能经过修改以最大限度地减少CPU使用率和磁盘空间。 – 2012-07-11 14:56:16

相关问题