2012-04-23 6 views
1

大きなデータファイルをダウンロードするクライアント用のREST Webサービスを作成しています。その一環として、例外が発生した場合や元の要求で接続が失われた場合に割り込みを再開できるようにする機能を実装したいと考えています。Javaを使用してREST Webサービスで割り込みの再開を有効にする

オンラインでいくつかのリサーチを行いましたが、http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlに示すように、リクエストヘッダーでRange/If-Rangeプロパティをサポートすることが解決策である可能性があります。

私の質問は、REST Webサービスの範囲で

  1. あり、それが最も一般的に使用されるとレンジ/場合はレンジクライアントのHTTPリクエストヘッダのプロパティをサポートする、または単に合格することをお勧めされます例えば、のように、クライアントのGET要求のクエリパラメータとして、バイトオフセットを設定します。hostname:port/download?token =?byteoffset =?

  2. 前者のアプローチでは、サーバー側で、JAX-RS仕様の範囲フィールド(Javaを使用しています)で要求を処理する標準的な方法がありますか?単純な方法は、ファイルからInputStreamを開いて、指定されたバイト数をバイパスすることです。一般的に

答えて

1

、リソース(またはあなたが必要とするその一部)にメタ -informationとしなければならないパラメータを使用していないので、あなたは、レンジを使用する必要があり、かつ確実に保ちますサーバーで許可されます。

たとえば、byteoffsetは、リソース自体の意味のある部分、コンポーネント、または意味的に興味深いビットではなく、部分的なコンテンツを克服する方法です(すべてのリソースで同じです。したがって、ヘッダーそれのために許可され、ちょっと、彼らはそこにいる)。

関連する問題