我正在尝试使用boto和python将文件上传到特定位置。我正在使用这种效果:
from boto.s3.connection import S3Connection
from boto.s3.key import Key
conn = S3Connection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
bucket = conn.get_bucket('the_bucket_name')
for key in bucket:
print key.name
这就是诀窍。我已经为存储桶中的“文件夹”配置了凭据。每个 - Amazon S3 boto - how to create a folder?我知道s3中实际上没有文件夹,而是像“foo / bar / my_key.txt”这样的键。当我尝试执行get_bucket()时,我得到了
boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden
因为我实际上没有基础桶的凭据,而是桶密钥的子集。 my_bucket/the_area_I_have_permission/*
有谁知道如何通过连接步骤中访问的存储桶中的特定“区域”?或者我可以用来访问my_bucket/the_area_I_have_permission/*
的替代方法?
答案 0 :(得分:2)
这有用吗:
bucket = conn.get_bucket('the_bucket_name',validate=False)
key = bucket.get_key("ur_key_name")
if key is not None:
print key.get_contents_as_string()
keys = bucket.list(prefix='the_area_I_have_permission')
for key in keys:
print key.name
答案 1 :(得分:1)
发现问题。 RequestTimeTooSkewed Error using PHP S3 Class
问题是我的VM日期已关闭,亚马逊使用日期来验证请求。 1+到@bdonlan。