それで、私がウェブサーバーを書いていて、「非常に大きな」ファイルのアップロードをサポートしたいとしましょう。さらに、標準の multipart/form-data MIME タイプを介してこれを行うつもりであると仮定しましょう。私は erlang を使用しており、http パケットが から返されるときに収集する予定であると言う必要がありますがerlang:decode_packet/2、http 要求ハンドラーがアップロードされたコンテンツの場所を見つけるまで、実際に要求本文を収集したくありません。するべきか
a) 本体が非常に大きく、メモリ不足のためにサーバーがクラッシュする可能性を無視して、とにかく本体を収集しますか?
b) ヘッダーが処理されるまで、(存在しない可能性がある) リクエストボディをソケットで受信することを控えますか?
c) 何か他のことをしますか?
回答 c の例としては、別のプロセスを生成して、アップロードされたコンテンツを収集して一時的な場所に書き込む (メモリの使用を最小限に抑えるため) と同時に、将来の処理のためにその場所を http リクエスト ハンドラーに提供します。しかし、私にはわかりません-ここに標準的なテクニックはありますか?