1

HTTP 経由で一連のファイルを同期しようとしています。
今のところ、HTTP PUT を使用して、変更されたファイルを送信しています。ただし、デルタが非常に小さい大きなファイルを同期する場合、これは非常に非効率的です。

デルタを送信するためにrsyncが行うことにより近いことをしたいのですが、これを行うための最良の方法は何だろうと思っています。

両端で rsync ライブラリを使用し、HTTP 経由で通信をラップできることはわかっていますが、これはアンチパターンのように聞こえます。HTTP を介したスタンドアロン プロトコルのトンネリング。私は、HTTP の仕組みにもっと沿った何かをしたいと思います。HTTP 要求/応答でバイナリ データ (私のファイルを除く) をラップするのではありません。

また、WebDAV に既に実装されている関連/有用な機能を見つけることができませんでした。

これはデスクトップっぽいアプリケーションなので、クライアントとサーバーの実装を完全に制御できます (つまり、「ブラウザーの互換性について心配する必要はありません」)。

4

1 に答える 1

2

コメントで推奨されている HTTP パッチでは、クライアントがローカルの変更を追跡する必要があります。ファイルのサイズによっては、それを行うことができない場合があります。

または、巨大なファイルの「チャンク」をリソースとして扱うこともできます。変更の性質とファイルの内容に応じて、バイト単位、章単位などになります。

クライアントは、すべてのチャンクのハッシュをクエリし、ローカル バージョンについても同様に計算し、変更されたものだけを PUT することができます。

于 2012-08-21T20:06:19.553 に答える