我有一个流(假设它是生成过程的标准输出),我想使用 boto 将其发送到 s3。
请给我一个代码示例好吗?
我认为答案是除非您知道要流式传输的数据的大小,否则您无法轻松地将数据流式传输到 s3,因为 s3 需要事先知道对象的大小。您绝对可以从 s3 流式传输数据,但要获取数据,您需要在内存或磁盘中缓冲,除非您有幸知道大小。
几乎来自教程: http ://boto.s3.amazonaws.com/s3_tut.html#storing-data
from boto.s3.connection import S3Connection
from boto.s3.key import Key
import subprocess
conn = S3Connection()
buckets = conn.get_all_buckets()
bucket = buckets[0] # assuming you have one bucket created
output = subprocess.check_output(["echo", "Hello World!"])
k = Key(bucket)
k.key = 'test'
k.set_contents_from_string(output) # should be saved on S3
k.get_contents_as_string() # should retrieve the string