阿里雲OSS上傳報錯: You have no right to access this object because of bucket acl

報錯信息

com.aliyun.oss.OSSException: You have no right to access this object because of bucket acl.

[ErrorCode]: AccessDenied
[RequestId]: xxxxx
[HostId]: xxx.oss-cn-xxx.aliyuncs.com
[ResponseError]:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>AccessDenied</Code>
  <Message>You have no right to access this object because of bucket acl.</Message>
  <RequestId>xxxxx</RequestId>
  <HostId>xxx.oss-cn-xxx.aliyuncs.com</HostId>
</Error>

at com.aliyun.oss.common.utils.ExceptionFactory.createOSSException(ExceptionFactory.java:100)
	at com.aliyun.oss.internal.OSSErrorResponseHandler.handle(OSSErrorResponseHandler.java:70)
	at com.aliyun.oss.common.comm.ServiceClient.handleResponse(ServiceClient.java:257)
	at com.aliyun.oss.common.comm.ServiceClient.sendRequestImpl(ServiceClient.java:140)
	at com.aliyun.oss.common.comm.ServiceClient.sendRequest(ServiceClient.java:70)
	at com.aliyun.oss.internal.OSSOperation.send(OSSOperation.java:83)
	at com.aliyun.oss.internal.OSSOperation.doOperation(OSSOperation.java:145)
	at com.aliyun.oss.internal.OSSOperation.doOperation(OSSOperation.java:102)
	at com.aliyun.oss.internal.OSSObjectOperation.writeObjectInternal(OSSObjectOperation.java:1125)
	at com.aliyun.oss.internal.OSSObjectOperation.putObject(OSSObjectOperation.java:130)
	at com.aliyun.oss.OSSClient.putObject(OSSClient.java:491)
	at com.aliyun.oss.OSSClient.putObject(OSSClient.java:475)
	

解決方法

這是由於你用的 AccessKey 對應的用戶沒有 OSS 權限導致的,需要增加 OSS 權限:訪問控制 -> 用戶 -> 權限管理 -> 添加權限

  1. 點擊側邊欄菜單進入 “訪問控制”
    如果沒有,可以通過右邊的搜索框查詢
    在這裏插入圖片描述

  2. 進入“用戶”菜單
    在這裏插入圖片描述

  3. 添加權限
    從你的用戶點進去,給該用戶添加 OSS 權限
    在這裏插入圖片描述
    添加這個權限即可:AliyunOSSFullAccess
    在這裏插入圖片描述

自定義權限

如果你的 OSS 做了精細權限控制,那麼需要自定義權限策略。

比如需要控制該用戶只能訪問 my-test 這個 bucket

  1. 先定義一個權限策略:oss-controller-test
    在這裏插入圖片描述
    策略腳本如下:
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "oss:*",
            "Resource": [
                "acs:oss:*:*:my-test",
                "acs:oss:*:*:my-test/*"
            ]
        }
    ]
}
  1. 給用戶添加這個“自定義權限“:oss-controller-test
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章