は、私は大容量のファイルを変換REST APIのHTTP/2固有の機能を使用すべき
私のチームは、大規模な構造化テキストファイルを受け取り、API作成され
(100メガバイト - 1TBを、1ギガバイトを期待)各行を変更して結果のファイルを返します。ファイルを送信したときと同じ速さで処理できるため、サーバー上のファイルをキャッシュしないようにしたいと考えています。私たちは、私たち自身のリソース使用に比べてクライアントの使いやすさを好むので、これは厳しい要件ではありません。
いくつかのオプション
HTTP/1.1は、暗黙的に応答が(except in the case of errors)and bad things can happen, especially with proxies, if you try to get around this送信される前に、完全なリクエストが処理されている必要があります。だから私たちは弾丸に噛み付いてリクエストやレスポンスを保存し、処理のために大きなファイルをアップロードするために組織内の別のリソースを使用します。
HTTP/2 explicitly allows you to send before the request has finished and requires that the client read what you sendとHTTP/2は、すべての主要なブラウザで既にサポートされています。
だから、私はいくつかの潜在的なAPI(すべてのPOST)を参照してください。
HTTP1.x: - :単一の要求
アップロード/ダウンロード、すでにこの/transformed_file_id/ --> returns id for the uploaded file
/transformed_file/{id} --> returns the transformed data
HTTP1.xのためのいくつかのインフラストラクチャがあります
/transformed_file/ --> returns the transformed version of the file - stores stuff under-the-hood
HTTP2:単一の要求
/transformed_file/ --> returns the transformed version of the file - starts sending response as soon as it receives the first couple of K.
質問(複数可)
私は、ブラウザのコンテンツを離れてから恥ずかしがり屋ではないでしょうが、それはこの機能にアクセスするためにサービスのためにHTTP/2を使用するのが賢明でしょうか?
これはすべて悪い考えであり、クライアントは一度にファイルの小さな部分をアップロードする必要があります(ブラウザインターフェイスでこれを許可するにはフロントエンドを作成する必要があります。かなり厳しい)。