4

私は現在このコードを使用しています:

#!/usr/bin/env python

import boto
import boto.s3
from boto.s3.key import Key

AWS_ACCESS_KEY_ID = ''
AWS_SECRET_ACCESS_KEY = ''

filename = 'test.zip'    
bucket_name = AWS_ACCESS_KEY_ID.lower() + '-mah-bucket'
conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)

bucket = conn.create_bucket(bucket_name, location=boto.s3.connection.Location.DEFAULT)

k = Key(bucket)
k.key = 'my test file'
k.set_contents_from_filename(filename)

2つの質問があります。まず、このコードはアップロードだけでなくバケットも作成すると思います。バケットはすでに配置されているので、作成したくないのです。これを行うには、次のように変更します。

k = Key(bucket_name)

そしてこれを取り除きます:

bucket = conn.create_bucket(bucket_name, location=boto.s3.connection.Location.DEFAULT)
4

1 に答える 1

4

実際には、conn.create_bucket(...)の代わりに、次のようにします。

bucket = conn.get_bucket(bucket_name)
k = Key(bucket)

また、AWS_ACCESS_KEY_IDに基づいてバケットに名前を付けるのは、実際には必要ないため、私にはばかげているように思われることを指摘しておく必要があります。

于 2012-11-19T23:44:23.240 に答える