2012-10-06 17 views
13

Dropboxデスクトップクライアントは、バイナリ差分アルゴリズムを使用して、すべてのファイルをブロックに分割し、クラウドにまだ存在しないブロックのみをアップロードします(https://serverfault.com/questions/52861/how-does-dropbox-version-upload-large-files)。REST APIを使用したDropbox差分/差分アップロード

しかし、Dropbox APIは、同期が必要な場合にのみ、ファイル全体(/files_put/files (POST))をアップロードすることができます。

Dropbox APIを使用して差分/差分同期を行う方法はありますか?つまり、デスクトップクライアントのようにファイルの変更部分のみをアップロードする方法はありますか?

これができない場合は、Dropbox APIを使用して小さな変更がある大きなファイルを定期的に同期するベストプラクティスは何ですか?

+0

大きな質問 - これまでに答えを見つけましたか? – DoctorG

+0

残念ながら。私が関連するものを見つけたら、私はこのポストに戻るでしょう。 –

+0

AFAIK、HTTP範囲検索リクエスト(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2) Dropbox HTTP APIを使用してブロック単位でファイルをダウンロードできます(少なくともダウンロードするにはファイル)、アップロードについては不明です。 /files(GET)メソッドの詳細を参照してください:https://www.dropbox.com/developers/core/docs –

答えて

4

残念ながら、これは不可能であり、決して利用できない可能性があります。

少しの調査をした後、機能リクエストfor delta-syncing to be integrated into the APIが見つかりました。 Dropboxは応答しておらず、コミュニティがこの要求をアップvしていません。

私は、Dropboxが未知の開発者の手にとって危険な機能であるため、Dropboxがこの機能を提供していない可能性が高い理由を推測します。

大きなファイルの更新にこのようなデルタ変更更新システムを使用するアプリケーションを作成する場合を考えてみましょう。あなたはアプリを徹底的にテストし、アプリストアに公開します。最初のリリースから2週間後にダウンロードが多数行われると、非常に具体的なテストケースを見逃していたため、レビューや苦情が届きにくくなります。

この特定のバグのケースでは、差分オフセットを1バイト誤算しました。あらいやだ!何百ものユーザーのために何千ものファイルが壊れてしまいました!

このような可能性を考慮して、私は個人的にDropboxにそのような開発機能を提供しないように要請すると思います。このような機能をAPIに統合すると、重要なファイルの信頼性の高いクラウドバックアップが一貫性と安全性を提供するという第1の目的を破ってしまうでしょう。

+3

私はあなたの結論に同意しません:間違いを犯すことができないことが理由ではありませんそのような機能を提供する。あなたは開発者をベビーシットできません。あなたが物事を危険なものにするのではなく、物事が危険なときに素晴らしい警告や残余物を提供している限り、私はこのようなものを提供する際に問題を見ません。 –