私は、地理的に分散した多数のノードからS3バケットにフラッシュビデオファイルをアップロードするプロジェクトに取り組んでいます。
ビデオファイルはそれぞれ約2〜3 MBで、10分ごとに(ノードごとに)1つのファイルのみを送信しますが、これらのノードはストリーミングメディアをCDN、および場所が原因で、最大512kのアップロードしか取得できません。
私はASW-S3gemを調査してきましたが、レート制限はありませんが、IOストリームを渡すことができることを認識しています。これを考えると、read
メソッドをオーバーライドするレート制限ストリームを作成し、レート制限ロジックを追加して(たとえば、最も単純な形式でsleep
は読み取り間の呼び出し)、オーバーライドされたスーパーを呼び出すことができるかどうか疑問に思っています。方法。
私が検討したもう1つのオプションは、Net :: HTTPのコードをハッキングsend_request_with_body_stream
し、ループを使用しているメソッドにレート制限を設定するwhile
ことですが、どちらが最適なオプションかは完全にはわかりません。
私はIOクラスを拡張しようとしましたが、それはまったく機能せず、単にクラスから継承してclass ThrottledIO < IO
も何もしませんでした。
任意の提案をいただければ幸いです。