1

現在Net::HTTP、Ruby スクリプトを使用して、マルチパート フォーム ポスト経由でファイルを Web サイトに投稿しています。小さなファイルにはうまく機能しますが、このスクリプトを使用して非常に大きなファイルを送信する必要が頻繁にあり、HTTP#post投稿データをオブジェクトとしてのみ受け入れるようStringです。つまり、送信するファイルは、何かを送信する前にメモリに読み込む必要があります。送信済。このスクリプトはビジー状態の本番サーバーで実行されているため、ファイルを送信するためだけに数百メガバイトの RAM を使い果たすことは容認できません。

理想的には、バッファ サイズとオブジェクトを指定できるメソッドがあり、バッファ サイズIOのデータ​​のチャンクを送信し、IO必要な場合にのみオブジェクトから読み取ります。これを実現する最善の方法は何でしょうか? に関連するものを見逃しましたNet::HTTPか?

更新:Net::HTTP#body_stream(input)ドキュメントはかなり... まばらですが、良さそうです。これが実際に行われている良い例を教えてくれる人はいますか?

4

2 に答える 2

3

実際、body_stream を使用してファイルをアップロードすることができました。完全なソース コードはこちら: http://stanislavvitvitskiy.blogspot.com/2008/12/multipart-post-in-ruby.html

于 2008-12-25T15:34:39.433 に答える
0

Net :: HTTP#body_stream(input)を使用する

ストリーミングなしのマルチパート投稿の例:

于 2008-10-19T10:06:05.773 に答える