Зараз я працюю з цим кодом:
#!/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)
У мене є два питання. По-перше, я вважаю, що цей код створює відро, а також завантажує. Річ у тому, що я не хочу, щоб відро було створено, оскільки я вже маю на своєму місці.
k = Key(bucket_name)
і позбутися цього:
bucket = conn.create_bucket(bucket_name, location=boto.s3.connection.Location.DEFAULT)
Відповіді:
4 для відповіді № 1Насправді, замість conn.create_bucket (...), просто зробіть:
bucket = conn.get_bucket(bucket_name)
k = Key(bucket)
Крім того, я, напевно, маю відзначити, що мені здається нерозумним називати ваші коробки на основі AWS_ACCESS_KEY_ID, оскільки це насправді не потрібно.