我可以从 AWS S3 密钥创建 python 可迭代对象吗?

Can I create a python iterable object from an AWS S3 key?

我正在尝试使用第三方实用程序来处理来自可迭代对象的数据,例如队列或文件。我需要通过这个实用程序推送一堆 AWS S3 文件。每个都是包含 JSON 条消息的文本文件,每行一条完整消息。

一种方法是使用 key.get_contents_to_filename() 制作每个文件的本地副本,然后打开本地文件进行读取并将文件对象传递给实用程序,然后在完成后删除本地副本。但我尽量避免在本地下载文件,而更喜欢直接从 S3 读取文件。是否可以直接从 S3 密钥创建可迭代对象?

有一个 key.get_contents_as_string 方法,您可能 加载到 io.StringIOio.BytesIO

>>> import io
>>> bt = io.BytesIO('abc\ndef\nghi')
>>> st = io.StringIO(u'abc\ndef\nghi')
>>> for thing in st:
        print thing


abc

def

ghi
>>> for thing in bt:
        print thing


abc

def

ghi
>>>