s3通过boto连接到'folder'

时间:2013-07-08 22:46:46

标签: python amazon-s3 boto

我正在尝试使用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/*的替代方法?

2 个答案:

答案 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。