{'Code': 'AccessDenied', 'Message': 'The bucket you access does not belong to you.'}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题描述: 您在Python 3.8环境中使用oss2==2.14.0
SDK尝试列出OSS Bucket中的对象时遇到权限问题,错误信息为:{'Code': 'AccessDenied', 'Message': 'The bucket you access does not belong to you.'}
。尽管您能在OSS Browser中正常浏览该Bucket的内容,但通过SDK操作时权限受限。
可能原因:
list_objects
操作。解决步骤:
oss:ListObjects
权限。可以通过阿里云控制台为RAM用户添加相应的权限策略。list_objects
操作。必要时调整Policy以包含正确的Principal(用户或用户组)和所需的操作权限。代码示例:确保您的Python代码正确初始化了OSS客户端并调用了list_objects
方法,如下所示(请替换YOUR_ACCESS_KEY_ID
、YOUR_ACCESS_KEY_SECRET
及yourBucketName
):
from oss2 import Auth, Bucket
auth = Auth('YOUR_ACCESS_KEY_ID', 'YOUR_ACCESS_KEY_SECRET')
bucket = Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName')
for obj in bucket.list_objects():
print(obj.key)
注意事项:
OSS_ACCESS_KEY_ID
和OSS_ACCESS_KEY_SECRET
,并确认在运行脚本的环境中生效。通过上述步骤,您可以定位并解决通过Python SDK访问OSS时遇到的AccessDenied
问题。