我有一个由 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?