DB クエリ (この場合は MongoDB カーソル) に基づく Python イテレータがあります。botoを使用して、その内容をS3のテキストファイルとして書き込もうとしています。
これを行う最も簡単な方法は、すべてを文字列に連結し、key.set_contents_from_string を呼び出すことです。ただし、これは大量のデータ (おそらく 1GB 以上) ではうまく機能しません。
s = ""
for entry in entries:
s += entry
k.set_contents_from_string(s)
理想的には、key.open_write() を使用して、繰り返しながら各エントリを S3 に書き込むことができるようにします... しかし、その関数は boto によってまだ実装されていません。
k.open_write()
for entry in entries:
k.write(entry)
どうすればこれを回避できますか? key.send_file を使用できるように、ファイル オブジェクトのように動作するようにイテレータをラップする方法はありますか?