使用 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 等),然后将其传递给该函数。
我有一个字典列表(例如 [{'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 等),然后将其传递给该函数。