通过boto连接到'文件夹's3
问题描述:
我想使用boto和python将文件上传到特定位置。我正在访问使用这种效果:通过boto连接到'文件夹's3
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/*
?
答
这是否帮助:
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
感谢您的回复。不。得到了TypeError:get_key()得到了一个意外的关键字参数'prefix',第一个和boto.exception.S3ResponseError:S3ResponseError:403第二个禁止了。 – Brad
哦混合了两个不同的API调用。这一个应该是电话。 关于403,你是否能够使用其他一些clinet访问存储桶(可能是Firefox的UI或S3Explorer插件)与这些secretid/keys? –
dang。第一次我仍然得到403。我试图与“桶名”连接,然后我将路径传递给我试图访问的文件,即:“/some/path/file.json”。那是对的吗?我已经尝试过,没有主导斜线。至于403,是的,是 – Brad