web-dev-qa-db-ja.com

Dropboxのバージョン/大きなファイルのアップロード方法は?

無料のDropboxアカウント(2GB)を持っていますが、大きなファイルのバージョン管理がどのように機能するのか疑問に思っていました。

1GBをわずかに超えるサイトにあるすべてのウェブファイルの完全なバックアップがあります。 1 GBの最初のアップロード後、同期するたびにDropboxがファイルの差分を計算しますか、それともバージョン全体をアップロードする必要がありますか?

常に大きなバージョンのファイルを最新の状態にしておくのは良いことですが、毎回1GBアップロードする帯域幅を殺したくありません。

これは可能ですか?

おかげで、

28
barfoon

Dropboxはバイナリdiffアルゴリズムを使用してすべてのファイルをブロックに分解し、クラウドにまだないブロックのみをアップロードします。これはすべて、コンピューター上でローカルに行われます。

Dropboxは、すでにアップロードしたファイルを使用するだけでなく、全員のファイルを1つのブロックデータベースに集約し、そのデータベースに対して各ローカルブロックハッシュをチェックします。

つまり、他の誰かが自分と同じファイルをアップロードした場合(たとえば、最新のUbuntu ISOなど)、アップロードするものが何もないため、アップロードは瞬時に見えますが、定期的に変更されるファイルを更新している場合は、バックアップファイル、変更のみがアップロードされます。完全に一意のファイルをアップロードする場合は、すべてがアップロードされるまで待つ必要があります。

36
Moo

その価値については、Dropboxは各ファイルの4MBごとにハッシュを作成すると主張しています。このようにして、100MBファイルの連続する2MBを変更した場合、ファイルを再同期するために4MB(または2番目の4MBブロックにまたがる場合は8MB)をアップロードするだけで済みます。

私たちが使用するハッシュは、4MBのファイルチャンク専用です。

ソース: https://blogs.dropbox.com/tech/2016/05/inside-the-magic-pocket/

10
mightytightywty

また、変更してもファイル全体が一度にアップロードされないことを強調することも重要です。たとえば、2GBの一意のファイルがある場合、保持している暗号化されたディスクドライブ(truecryptまたはpgpdiskを使用する場合など)について、暗号化されたディスク内のいくつかのファイルのみを変更すると、ドロップボックスはブロックのみをアップロードしますそれは効果的に変わりました。したがって、たとえば、2 GBのpgpdiskファイルをDropboxにアップロードし、次にこの2 GBの100 MBだけを変更すると、Dropboxは十分にインテリジェントになり、変更されたもののみを検出して更新します。そのため、すでに存在するものをアップロードするアップロード帯域幅を無駄にすることはありません。

Dropboxチームが取り組んでいるもう1つの機能は、ローカルネットワークで実行されているDropboxの別のインスタンスを検出するようにDropboxを作成し、それらの間で情報を同期することです。たとえば、ラップトップとデスクトップがあり、両方に同じDropboxアカウントがあり、デスクトップ上のファイルを更新すると、デスクトップは「クラウド」と瞬時に同期します。クラウドの場合、Dropboxは代わりにデスクトップコンピューターから直接diffをダウンロードし、ダウンロード帯域幅を浪費しません。これはまだ来ていません-しかし、甘い機能になるでしょう!

2
Macaubas