引用现有S3存储桶以使用Boto保存文件

时间:2013-12-03 23:12:10

标签: python amazon-s3 boto

我正在关注此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')

1 个答案:

答案 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')

但它完成了同样的事情。