我正在关注此help guide,其中介绍了如何在创建文件后将文件保存到S3存储桶。但是,我找不到如何保存到现有存储桶的说明。更具体地说,我不确定如何引用预先存在的桶。我认为用create_bucket
替换get_bucket
可以解决问题。这允许我保存文件,但因为文档说get_bucket
“按名称检索存储桶”我想在这里检查并确保它只检索存储桶的元数据并且不会下载所有内容把桶放到我的电脑上。我这样做是对还是有更多的pythonic方式?
import boto
s3 = boto.connect_s3()
bucket = s3.get_bucket('mybucket')
from boto.s3.key import Key
k = Key(bucket)
k.key = 'foobar'
k.set_contents_from_string('This is a test of S3')
答案 0 :(得分:5)
您的代码看起来很合理。 get_bucket
方法将返回Bucket
对象,或者,如果指定的存储桶名称不存在,则会引发S3ResponseError
。
您可以稍微简化一下代码:
import boto
s3 = boto.connect_s3()
bucket = s3.get_bucket('mybucket')
k = bucket.new_key('foobar')
k.set_contents_from_string('This is a test of S3')
但它完成了同样的事情。