現在Net::HTTP
、Ruby スクリプトを使用して、マルチパート フォーム ポスト経由でファイルを Web サイトに投稿しています。小さなファイルにはうまく機能しますが、このスクリプトを使用して非常に大きなファイルを送信する必要が頻繁にあり、HTTP#post
投稿データをオブジェクトとしてのみ受け入れるようString
です。つまり、送信するファイルは、何かを送信する前にメモリに読み込む必要があります。送信済。このスクリプトはビジー状態の本番サーバーで実行されているため、ファイルを送信するためだけに数百メガバイトの RAM を使い果たすことは容認できません。
理想的には、バッファ サイズとオブジェクトを指定できるメソッドがあり、バッファ サイズIO
のデータのチャンクを送信し、IO
必要な場合にのみオブジェクトから読み取ります。これを実現する最善の方法は何でしょうか? に関連するものを見逃しましたNet::HTTP
か?
更新:Net::HTTP#body_stream(input)
ドキュメントはかなり... まばらですが、良さそうです。これが実際に行われている良い例を教えてくれる人はいますか?