使用 Python boto 在 s3 中存储文件

storing files in s3 using Python boto

我有一个字典列表(例如 [{'a': 'b', 'c': 'd'}, {'e': 'f', 'g': 'h'}]),我想使用 Python boto 包将其存储在 s3 中。

一种方法是遍历列表,写入文件对象 f,这样 f 的每一行都是一个 json 对象。然后我可以使用 key.set_contents_from_file(f)。是correct/best的方法吗?

似乎写入本地文件是一个不必要的中间步骤,但我不确定。

要跳过写入文件的步骤,您可以使用 key.set_contents_from_string(str) 直接 PUT 字典的值。

参见:http://boto.readthedocs.org/en/latest/ref/s3.html#module-boto.s3.key

set_contents_from_string 的 CTRL+F)

另一种迂回方式(避免写入磁盘)是使用 set_contents_from_stream,并在内存中创建一个 "file"(使用 StringIO 等),然后将其传递给该函数。