问题描述
操作的Bucket属于其他用户。
问题原因
调用PutBucket接口时,存在以下场景之一则会报此错误:
Bucket已经存在,而且使用RAM用户AK或者STS来调用PutBucket再次重复创建此Bucket时,会报此错误。只有阿里云账号才能再次重复创建自己的Bucket(这种操作不会改变Bucket的相关属性)。
使用RAM用户或者STS创建不存在的Bucket时,如果阿里云账号授予了相关权限,可以创建成功。如果再次创建同一个Bucket时,不管是否有权限,都会报此错误。
调用PutBucketAcl接口(接口形式与PutBucket的唯一区别是header中传了
x-oss-acl
头),但是并没有这个接口的权限。没有权限的原因有以下几种:这个Bucket属于其他用户。
使用了RAM用户或者STS的AK,但是这个RAM用户或者角色没有PutBucketAcl权限。
Bucket设置有Bucket Policy,禁止调用PutBucketAcl接口。
问题示例
使用RAM用户AK调用PutBucket接口来创建已经属于阿里云账号的Bucket(假设其中qn6qrrqxo2oawuk53otf****属于某个子账号的AK):
PUT / HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 24 Feb 2017 03:15:40 GMT
x-oss-acl: private
Authorization: OSS qn6q**************:77Dv****************
<?xml version="1.0" encoding="UTF-8"?>
<CreateBucketConfiguration>
<StorageClass>Standard</StorageClass>
<DataRedundancyType>LRS</DataRedundancyType>
</CreateBucketConfiguration>
解决方案
使用RAM用户AK或者STS时,不要重复调用PutBucket接口去创建同一个Bucket。
调用PutBucketAcl接口时,需要确保有阿里云账号的授权。
相关文档
该文章对您有帮助吗?
- 本页导读 (1)
- 问题描述
- 问题原因
- 问题示例
- 解决方案
- 相关文档