私はこのシナリオを持っています:
ユーザーがダウンロードする zip ファイルがありますが、ダウンロードごとに、ユーザー固有のコンテンツ (ユーザー名とダウンロード時間など) を含む「readme」ファイルを含めたいと考えています。アーカイバー (zip-stream) モジュールを使用して、圧縮されたコンテンツを圧縮してブラウザーにストリーミングしました。目標は、CPU 使用率 (つまり、圧縮) とストレージ (つまり、同じ zip のコピーの作成) を最小限に抑えることです。短所でこれを達成するための可能な方法のいくつかを次に示します。
ダウンロードするたびに、元の zip のコピーを作成し、動的に生成された readme ファイルをコピーに追加してから、ブラウザーにストリーミングします。これにより、多くのユーザーが同時にダウンロードしている場合、元の zip ファイルの複製コピーが多数作成されます。zip ファイルは 2Gb にもなる可能性があるため、これは受け入れられません。
ダウンロードするたびに、元の zip ファイルと readme ファイルを含むストリーミング用の新しい zip を作成します。これにより、新しい zip がその場で作成されるため、CPU とストレージが節約されます。しかし、これは、ユーザーがダウンロード後に 2 回解凍する必要があることを意味し、受け入れられません。
「未ファイナライズ」zip ファイルを保存し、readme ファイルを追加してからファイナライズしてブラウザにストリーミングできるかどうか疑問に思っています。