首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >boto s3 Bucket对get_bucket

boto s3 Bucket对get_bucket
EN

Stack Overflow用户
提问于 2017-03-10 11:40:51
回答 2查看 2.9K关注 0票数 2

我试图访问桶中的密钥,但我没有权限,尽管我对密钥有权限。为了能够执行get_key('this/is/my_key'),我需要桶对象:

代码语言:javascript
复制
conn = boto.connect_s3(key, secret_key)
my_bucket = conn.get_bucket('a_bucket')

S3ResponseError: S3ResponseError: 403 Forbidden

另一方面,以下工作

代码语言:javascript
复制
my_bucket = boto.s3.bucket.Bucket(conn, 'a_bucket')
my_bucket.get_key('this/is/my_key')

问题:,创建对象Bucket和使用get_bucket方法有什么区别?检查多古 --我只看到验证的检查。还要别的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-10 11:48:12

在调用validate=True时,get_bucket中的验证(默认)检查桶的存在。由于您没有访问桶的权限,因此拒绝了您的请求(403)。在另一种情况下,类实例化似乎不进行验证,因此get_key方法按预期工作。

票数 1
EN

Stack Overflow用户

发布于 2017-03-10 18:40:58

get_bucket()需要s3:listObject权限

get_key()只需要s3:GetObject权限

因此,下面的行不会创建任何桶。

代码语言:javascript
复制
my_bucket = boto.s3.bucket.Bucket(conn, 'a_bucket')

它只创建指向桶的python对象类。只要您没有执行任何与桶相关的任务,就不会出现错误。如果您可以在没有错误的情况下执行get_key(),这意味着您获得了对桶的s3:GetObject权限。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42717551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档