3

Dropbox の優れた機能の 1 つは、アップロードしたファイルの以前のバージョンを保持することです。

私たちのサイトの一部は同様のファイル リポジトリ (顧客がファイルをアップロードしてオフサイトに保存する) であり、同様の機能を実装したいと考えています。

Dropbox はどのようにリビジョンを管理していますか? 各ファイルを自動コミットする市販のリビジョン ソフトウェアを使用していますか? それとも、彼らは独自のソリューションを展開しただけですか?

自分たちでゼロからやる時間があるようなものではないので、これに使用できるサードパーティのライブラリがあることを願っています。

皆さんが提供できる助けをありがとう!

4

1 に答える 1

4

おそらく彼らはカスタムソリューションを使用していました。考えられる方法は、バージョンごとにファイルシステムに個別のファイルを保存するか、バージョンごとにデータベースに個別のファイルを保存するか、改訂されたファイルの差分を計算して保存することです。

3番目のオプションは、使用するスペースが最も少ないため、最適です。

を見てくださいxdiff_file_bdiff()。2つのファイル(古いバージョンと新しいバージョン)のバイナリ差分が計算されます。xdiffライブラリは、これを行うために必要なツールを提供するはずです。PHPを使用してプロセスを自動化するだけで、バージョン管理にgitなどを使用することもできます。いくつかのベンチマークを実行して、どのソリューションが最も速く機能するかを確認することをお勧めします。

于 2012-07-11T14:50:06.930 に答える