サーバーで処理すると約3GBのサイズのレスポンスが作成されます。このデータはデータベースへの6つのクエリの集計です。このデータを個々のレスポンスとしてどのように送信できますか6つのクエリのうちの1つを集計として使用します。大きなHTTPレスポンスを春にストリームする方法
0
A
答えて
0
私はこれをしなかった:
@GetMapping("/{fileName:[0-9A-z]+}")
@ResponseBody
public ResponseEntity<InputStreamResource> get_File(@PathVariable String fileName) throws IOException {
Files dbFile = fileRepository.findByUUID(fileName);
if (dbFile.equals(null))
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
String filename = dbFile.getFileName();
Resource file = storageService.loadAsResource(dbFile.getFileName());
long len = 0;
try {
len = file.contentLength();
} catch (IOException e) {
e.printStackTrace();
}
MediaType mediaType = MediaType.valueOf(FileTypeMap.getDefaultFileTypeMap().getContentType(file.getFile()));
if (filename.toLowerCase().endsWith("mp4") || filename.toLowerCase().endsWith("mp3") ||
filename.toLowerCase().endsWith("3gp") || filename.toLowerCase().endsWith("mpeg") ||
filename.toLowerCase().endsWith("mpeg4"))
mediaType = MediaType.parseMediaType("application/octet-stream");
InputStreamResource resource = new InputStreamResource(new FileInputStream(file.getFile()));
return ResponseEntity.ok()
.contentType(mediaType)
.contentLength(len)
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFilename() + "\"")
.body(resource);
}
0
StreamingResponseBodyは、アプリケーションが応答OutputStreamに直接書き込むことができ、非同期要求処理のために使用されています。
チェックアウトこの記事を
http://www.logicbig.com/how-to/code-snippets/jcode-spring-mvc-streamingresponsebody/
http://shazsterblog.blogspot.in/2016/02/asynchronous-streaming-request.html
関連する問題
- 1. 春のリクエストリクエストでレスポンスHTTPヘッダーを変更するにはRestTemplate?
- 2. プレイスケーラで大きなレスポンスを送る方法
- 3. 大きなレスポンスのためのHTTP非同期応答
- 4. 大きなJSONオブジェクトをHttpResponseMessageストリームに直接シリアル化する方法は?
- 5. コンソールへのストリームからのJSONレスポンスを表示する方法
- 6. MVC3/Razorのアクションからレスポンス "ストリーム"を取得する方法は?
- 7. http応答にストリームするファイルを作成する方法
- 8. JSON HttpレスポンスをAngularJSのArrayに変換する方法
- 9. WeblogicレスポンスのHTTPヘッダーの設定方法
- 10. ストリームを返すときにストリームを閉じる方法
- 11. AJAXレスポンスから大きなテーブルを更新するには?
- 12. ジャージーリターンxmlレスポンス付きの春のブート
- 13. Chrome拡張機能 - HTTPレスポンス本体を取得する方法
- 14. HTTPレスポンスのサイズを取得する方法は?
- 15. httpリクエストメソッドからレスポンスを操作する方法は?
- 16. ESP8266とArduinoでHTTPレスポンスを構築する方法
- 17. jsonでHttpリクエストとレスポンスをリクエストする方法
- 18. チャールズプロキシとのHTTPレスポンス本文を修正する方法とregex?
- 19. FiddlerでHTTPレスポンスのヘッダーの分類を変更する方法
- 20. TomcatのHTTPレスポンスを取得する方法
- 21. C#でこのhttpレスポンスを解析する方法
- 22. 春の雲ストリームkafka
- 23. http接続から時間制限付きストリームを作成する方法
- 24. 春、レールのような偉大なフレームワークは、コード自体をテストする方法
- 25. httpプロトコルで入力ストリームをシーク(スキップ)する最速の方法
- 26. Androidに大きなテキストリソースを保存する方法(最大100MB)
- 27. 大きなファイルをTornado HTTPサーバーにアップロードするときのMemoryError
- 28. httpライブをストリームするにはMicrosoft Encoder 4 Proを構成する方法?
- 29. ExecuteReaderをXML HTTPレスポンスに変換する
- 30. 大きなjson HTTPレスポンスを送信すると何がうまくいくのですか?
あなただけの単一の要求から単一の応答を返すことができます。 –