Dropbox 最简洁的功能之一是它保留了您上传的文件的早期版本。
我们网站的一部分是一个类似的文件存储库(客户上传他们的文件以将它们存储在异地),我们希望实现一个类似的功能。
Dropbox 如何管理修订?他们是否使用一些自动提交每个文件的现成修订软件?还是他们只是推出了自己的解决方案?
我希望有一个我可以使用的第 3 方库,因为这不是我们自己有时间从头开始做的事情。
感谢你们提供的任何帮助!
Dropbox 最简洁的功能之一是它保留了您上传的文件的早期版本。
我们网站的一部分是一个类似的文件存储库(客户上传他们的文件以将它们存储在异地),我们希望实现一个类似的功能。
Dropbox 如何管理修订?他们是否使用一些自动提交每个文件的现成修订软件?还是他们只是推出了自己的解决方案?
我希望有一个我可以使用的第 3 方库,因为这不是我们自己有时间从头开始做的事情。
感谢你们提供的任何帮助!
他们很可能使用了定制解决方案。您可以查看的可能方法是在文件系统上为每个版本存储一个单独的文件,在数据库中为每个版本存储一个单独的文件,或者计算修订文件的差异并存储它。
第三种选择是最好的,因为它使用的空间最少。
看一下xdiff_file_bdiff()
,它计算两个文件(旧版本和新版本)的二进制差异。xdiff 库应该为您提供执行此操作所需的工具。您还可以考虑使用 git 之类的东西进行版本控制,只需使用 PHP 自动化该过程。您可能想要运行一些基准测试以查看哪种解决方案运行速度最快。