私が開発している Web アプリには、ユーザーがブラウザー経由で大きなファイルをダウンロードするオプションがあります。ファイルは、Amazon S3 などの別のリモート ストレージに保存できます。ファイルのダウンロードに数分以上かかった場合は、さまざまな理由からサーバー側で進行状況を追跡すると便利です。
したがって、Web アプリと node.js API は 1 つの場所に配置され、ファイルはどこにでも配置できます。私が考えていたのは、ファイルのダウンロードを node.js 経由でプロキシすることです。つまり、-> ユーザーが Web アプリのファイル ダウンロード ボタンをクリックする --> ノードが S3 にファイルを要求し、それをユーザーにストリーミングし、DB を更新して、ファイル サイズと送信されたデータが既知であるため、進行状況を追跡します。
知りたいこと:
- それはパフォーマンスの面で合理的ですか?何百もの並列ダウンロードが平均的なサーバーを殺してしまうのでしょうか?
- ノードでマルチパートダウンロードを処理するには?
- この問題に対するより良い解決策はありますか?
ご回答ありがとうございます。