我目前正在使用此代码:
#!/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)
最佳答案
实际上,而不是 conn.create_bucket(...),只需执行以下操作:
bucket = conn.get_bucket(bucket_name)
k = Key(bucket)
另外,我可能应该指出,根据 AWS_ACCESS_KEY_ID 命名您的存储桶对我来说似乎很愚蠢,因为这并不是真正需要的。
关于python - 两个 Amazon S3 Python Boto 上传问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13464371/