0

私は職場で、メモリにロードせずにディスクから直接クライアントにファイルをfinatra経由で送信する任務を負っていました(これらは非常に大きなファイルです)。ここに私の質問があります:

0) 情報をメモリに読み込まずにディスク I/O と対話するにはどうすればよいですか?

1) ファイル入力ストリームを http 出力ストリームに接続すると、実際にメモリが RAM にロードされますか?

2) 作業、転送、および送信するには、すべてをメモリにロードする必要があると考えていました。メモリにロードせずに、実際にコンテンツをネットワークポートに直接送信するにはどうすればよいですか?

3) メモリの流れは、ディスクから CPU レジスタへ、ネットワーク アダプタ バッファへ送信されますか? RAMをロードせずにこれがフローであることを確認するにはどうすればよいですか?

4) Finatraでこれを行うことは可能ですか?

4

1 に答える 1

1

残念ながら、Finatra 1.6 ではできません。ストリーミングは 2.0 のロードマップにあるようですが、そのリリースに関する公式発表はありません。現在、Request => Response記憶された入力と出力に依存しています。Finatra でボディを処理する最も効率的な方法は、実体化されChannelBuffersたバイトのインスタンスが少なくとも 1 つだけになるようにボディを保持することです。

于 2015-04-17T21:03:34.260 に答える