4

問題: 大量のファイル (ファイルのサイズは最大 2GB まで) をダウンロードし、リソースを要求しているクライアントにそれらを zip として送信する必要があります。私はその操作を並列化しようとしていました。現在、私が使用しているライブラリはOutputStream(私の場合はZipOutputStream) を入力として取り、ダウンロードしたファイルのコンテンツを ApacheCommons を使用してその出力ストリームに書き込みますIOUtils

このアプローチの問題は、すべてが順番に発生することです。1 つのファイルをダウンロードしてから OutputStream に書き込み、新しい zipEntry を作成し、そのエントリを閉じてから次のエントリに進む必要があります。ダウンロード操作を並行して実行したかったのですが、可能であれば書き込みもZipOutputStream並行して行う必要があります。

誰もこのことに直面したことがありますか?

そのライブラリの署名をダウンロードしたリソースを返すように変更してInputStream、それらのコンテンツを並行して取得し、それらのストリームごとに新しい ZipEntry を順番に作成することを計画していました。このようにして、少なくともファイルを並行してダウンロードできます。ZipOutStream を作成する方法は次のとおりです。

ZipOutputStream zo = new ZipOutputStream(httpservletResponse.getOutputStream);

何かご意見は?

4

0 に答える 0