3

我正在尝试使用 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

这是诀窍。我已将凭据配置到存储桶中的“文件夹”。per this - Amazon S3 boto - 如何创建文件夹?我知道 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/*

4

2 回答 2

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
于 2013-07-08T23:00:29.333 回答
1

发现了问题。 使用 PHP S3 类的 RequestTimeTooSkewed 错误

问题是我的虚拟机日期已关闭,亚马逊使用该日期来验证请求。1+ 到@bdonlan。

于 2013-07-09T15:23:18.183 回答