403錯誤
本文介紹OSS返回403錯誤的原因和解決方案。
AccessDenied
The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint
問題原因:訪問Bucket時使用的Endpoint不正確。
解決方案:確保使用正確的Endpoint訪問Bucket。例如Bucket所在地域為
oss-cn-hangzhou
,則外網(wǎng)Endpoint為oss-cn-hangzhou.aliyuncs.com
。關(guān)于Endpoint的更多信息,請參見OSS訪問域名使用規(guī)則。
This request is forbidden by kms
問題原因:沒有KMS使用權(quán)限。
解決方案:請確保對指定的CMK ID具有使用權(quán)限。詳情請參見服務(wù)器端加密。
AccessDenied
問題原因:沒有相應(yīng)的訪問權(quán)限。
解決方案:
確認使用了正確的AccessKey ID和AccessKey Secret。詳情請參見創(chuàng)建AccessKey。
確認RAM用戶是否擁有Bucket或Object相關(guān)操作權(quán)限。
You have no right to access this object
問題原因:RAM用戶無權(quán)訪問此Object。
解決方案:確認RAM用戶是否擁有Object相關(guān)操作權(quán)限。根據(jù)使用場景設(shè)置不同訪問權(quán)限的詳情,請參見教程示例:使用RAM Policy控制OSS的訪問權(quán)限。
Anonymous user has no right to access this bucket
問題原因:匿名用戶無權(quán)訪問此Bucket。
解決方案:請通過Bucket Policy授權(quán)匿名用戶訪問目標Bucket。詳情請參見通過Bucket Policy授權(quán)用戶訪問指定資源。
Anonymous user has no right to access this object
問題原因:匿名用戶無權(quán)訪問此Object。
解決方案:請通過Bucket Policy授權(quán)匿名用戶訪問目標Bucket中的指定資源。詳情請參見通過Bucket Policy授權(quán)用戶訪問指定資源。
You are denied by bucket referer policy
問題原因:防盜鏈校驗
解決方案:通過設(shè)置Referer白名單以及是否允許空Referer,限制僅白名單中的域名可以訪問Bucket內(nèi)的資源。詳情請參見設(shè)置防盜鏈。
Invalid according to Policy: Policy expired
問題原因:PostObject中的Policy表單域無效。
解決方案:Post請求的Policy表單域用于驗證請求的合法性。Policy為一段經(jīng)過UTF-8和Base64編碼的JSON文本,聲明了Post請求必須滿足的條件。Post Policy格式如下:
{ "expiration": "2014-12-01T12:00:00.000Z", "conditions": [ {"bucket": "johnsmith" }, ["starts-with", "$key", "user/eric/"] ] }
關(guān)于Policy中支持的Conditions詳情,請參見附錄:Post Policy。
Invalid according to Policy: Policy Condition failed: " + RelatedUnit; //XXX
問題原因:Policy表單域中指定的Conditions無效。
解決方案:確保在Policy表單域中指定有效的Conditions。關(guān)于Policy表單域中支持的Conditions以及Conditions匹配方式詳情,請參見附錄:Post Policy。
Invalid according to Policy: Policy Condition failed: ["eq", "$Content-Type", "image/png"]
問題原因:上傳的文件類型與指定的Content-Type類型不符。
解決方案:Policy中的Content-Type用于限制表單上傳時的文件類型。如果Content-Type限制為image/png,則僅支持上傳image/png類型的文件。如果您需要上傳其他類型的文件,請?zhí)砑訉?yīng)的Content-Type類型。關(guān)于常見的Content-Type類型列表,請參見如何設(shè)置Content-Type(MIME)?。
Target object does not reside in the same data center as source object
問題原因:不支持跨地域拷貝文件。
解決方案:僅支持拷貝同一地域下相同或不同存儲空間(Bucket)之間的文件(Object)。詳情請參見CopyObject。
Query string authentication requires the Signature, Expires and OSSAccessKeyId parameters
問題原因:URL簽名缺少必要參數(shù)。
解決方案:URL簽名必須至少包含Signature、Expires和OSSAccessKeyId參數(shù)。URL簽名示例為
http://oss-example.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=nz2pc56s936**9l&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****
。關(guān)于URL簽名的詳情,請參見在URL中包含簽名。
Invalid date (should be seconds since epoch)
問題原因:請求的時間戳無效。
解決方案:Expires參數(shù)的值是一個Unix time(自UTC時間1970年1月1號開始的秒數(shù)),用于標識該URL的超時時間。
Request has expired
問題原因:請求已過期。
解決方案:請結(jié)合實際使用場景,設(shè)置合理的Expires。關(guān)于在上傳文件時如何設(shè)置Expires,請參見PutObject、PostObject、AppendObject和InitiateMultipartUpload。
You do not have read permission on this object
問題原因:沒有該Object的讀取權(quán)限。
解決方案:請聯(lián)系Object擁有者授予您對Object的讀取權(quán)限。
You do not have write permission on this object
問題原因:沒有該Object的寫入權(quán)限。
解決方案:請聯(lián)系Object擁有者授予您對Object的寫入權(quán)限。
You do not have read acl permission on this object
問題原因:沒有該Object的ACL讀取權(quán)限。
解決方案:請聯(lián)系Object擁有者授予您GetObjectACL的權(quán)限。
You do not have write acl permission on this object
問題原因:沒有該Object的ACL寫入權(quán)限。
解決方案:請聯(lián)系Object擁有者授予您PutObjectACL的權(quán)限。
You have no right to access this object because of bucket acl
問題原因:沒有該Object的訪問權(quán)限。
解決方案:請授予訪問者OSS相關(guān)訪問權(quán)限,例如PutObject、GetObject、AppendObject等。詳情請參見RAM Policy常見示例。
Anonymous access is forbidden for this operation
問題原因:匿名用戶沒有該操作的對應(yīng)權(quán)限。
解決方案:請通過Bucket Policy授權(quán)匿名用戶訪問目標Bucket中的指定資源。詳情請參見通過Bucket Policy授權(quán)用戶訪問指定資源。
Access denied by bucket policy
問題原因:通過Bucket Policy的授權(quán)訪問被拒絕。
解決方案:請結(jié)合不同的使用場景靈活配置Bucket Policy。詳情請參見通過Bucket Policy授權(quán)用戶訪問指定資源。
Access denied by VPC endpoint policy
問題原因:客戶端所在VPC添加了Policy授權(quán)策略,導(dǎo)致未授權(quán)的Bucket無法在VPC環(huán)境內(nèi)訪問。
解決方案:請檢查您的客戶端所在VPC配置的Policy授權(quán)策略。
Access denied by authorizer's policy
問題原因:出現(xiàn)該報錯通常是無權(quán)限執(zhí)行相關(guān)操作。
解決方案:臨時訪問憑證最終獲取的權(quán)限是步驟四設(shè)置的角色權(quán)限和步驟五中Policy設(shè)置權(quán)限的交集。請通過以下示例檢查您在這兩個步驟中設(shè)置的權(quán)限交集。
示例1
如下圖所示,A代表RAM角色的權(quán)限,B代表通過policy參數(shù)設(shè)置的權(quán)限,C代表臨時訪問憑證最終的權(quán)限。
示例2
如下圖所示,A代表RAM角色權(quán)限,B代表通過policy參數(shù)設(shè)置的權(quán)限,且policy參數(shù)設(shè)置的權(quán)限是RAM角色權(quán)限的子集。因此,B代表臨時訪問憑證的最終權(quán)限。
AccessForbidden
CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec
問題原因:沒有配置CORS或CORS配置錯誤。
解決方案:請參見設(shè)置跨域資源共享進行排查。
PermanentRedirect
The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint
問題原因:通過SDK訪問OSS中的Bucket時,未指定Endpoint或者指定的Endpoint有誤。例如創(chuàng)建的Bucket位于青島地域,使用了默認配置的
oss-cn-hangzhou.aliyuncs.com
的Endpoint地址發(fā)起請求,則出現(xiàn)該報錯。解決方案:確認請求的Endpoint地址與Bucket實際的Endpoint地址一致。例如需要訪問青島和杭州兩個節(jié)點的Bucket,建議創(chuàng)建多個ossclient,并在ossclient中添加
oss-cn-hangzhou.aliyuncs.com
和oss-cn-qingdao.aliyuncs.com
兩個Endpoint。
SecondLevelDomainForbidden
The bucket you are attempting to access must be addressed using OSS third level domain
問題原因:Bucket的請求域名不為三級域名。
解決方案:針對OSS的網(wǎng)絡(luò)請求,請確保除了GetService (ListBuckets)API以外,其他所有請求的域名均由帶有指定Bucket信息的三級域名組成。其中,訪問域名結(jié)構(gòu)為
BucketName.Endpoint
,BucketName為您的存儲空間名稱,Endpoint為存儲空間對應(yīng)的地域域名。例如https://examplebucket.oss-cn-hangzhou.aliyuncs.com
。
Please use virtual hosted style to access
問題原因:Host錯誤。
解決方案:通過外網(wǎng)訪問OSS服務(wù)時,以URL的形式表示訪問的OSS資源。OSS的URL結(jié)構(gòu)為
<Schema>://<Bucket>.<外網(wǎng)Endpoint>/<Object>
。其中Schema包含HTTP或者HTTPS,Bucket表示存儲空間名稱,外網(wǎng)Endpoint為Bucket所在數(shù)據(jù)中心供外網(wǎng)訪問的Endpoint,Object填寫上傳到OSS上的文件的訪問路徑。例如您的Region為華東1(杭州),Bucket名稱為examplebucket,Object訪問路徑為
destfolder/example.txt
,則外網(wǎng)訪問地址為https://examplebucket.oss-cn-hangzhou.aliyuncs.com/destfolder/example.txt
。
NonStandardHostForbidden
Your host is invalid. Please use Open Storage Service standard host
問題原因:Host錯誤。
解決方案:請使用標準的域名格式訪問OSS資源。詳情請參見OSS訪問域名使用規(guī)則。
KmsUbsmsInvalidBid
Your account partner does not have KMS Service
問題原因:請求者未開通KMS服務(wù)。
解決方案:使用SSE-KMS對OSS數(shù)據(jù)進行加密前,請先開通KMS服務(wù)。詳情請參見開通密鑰管理服務(wù)。
KmsInDebt
Current user is indebted
問題原因:當您的阿里云賬戶進入欠費狀態(tài)時,您會收到相應(yīng)的通知。同時,您對密鑰管理服務(wù)KMS(Key Management Service)的訪問會被拒絕。
解決方案:如需正常使用KMS服務(wù)時,請確保您的阿里云賬戶不欠費。
WORMConfigurationLocked
The WORM Configuration is locked
問題原因:合規(guī)保留策略鎖定后試圖刪除策略。
解決方案:若保留策略已提交鎖定,則不允許刪除此策略,且無法縮短策略保護周期,僅可以延長保護周期。詳情請參見保留策略。
BucketNotBelongTo
The bucket you access does not belong to you
問題原因:當前用戶不是目標Bucket的擁有者。
解決方案:僅Bucket擁有者有權(quán)限執(zhí)行此操作。
InvalidAccessKeyId
The OSS Access Key Id you provided is disabled
錯誤原因:AccessKey ID處于禁用狀態(tài)。
解決方案:重新啟用AccessKey。
The OSS Access Key Id you provided does not exist in our records
錯誤原因:臨時訪問憑證已過期,過期后自動失效。
解決方案:請使用臨時訪問密鑰(AccessKeyId和AccessKeySecret)向App服務(wù)器申請新的臨時訪問憑證。具體操作,請參見獲取臨時訪問憑證。
The OSS Access Key Id contains non-acceptable characters, which accepts only alphanumeric characters[0-9a-zA-Z] and several special characters[._=]
錯誤原因:輸入了無效的AccessKey ID。
解決方法:請重新輸入RAM用戶或者阿里云賬號的AccessKey ID。更多信息,請參見創(chuàng)建AccessKey。
SignatureDoesNotMatch
The request signature we calculated does not match the signature you provided
問題原因:使用API接口或者SDK訪問OSS時,客戶端需要攜帶簽名信息以供OSS服務(wù)端進行身份認證。如果服務(wù)器返回如上所示的響應(yīng),說明您在請求中提供的簽名與服務(wù)端計算的不一致,導(dǎo)致請求被拒絕。
解決方案:請參考以下步驟進行排查。
確認簽名所用的AccessKey ID與AccessKey Secret是否填寫正確。
您可以使用AccessKey ID與AccessKey Secret登錄ossbrowser來驗證正確性。具體步驟,請參見安裝并登錄ossbrowser。
檢查簽名算法是否正確。
OSS提供兩種攜帶簽名的請求方式,分別為在Header中包含簽名和在URL中包含簽名。關(guān)于這兩種簽名方式的算法說明如下:
在Header中包含簽名
StringToSign = VERB + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedOSSHeaders + CanonicalizedResource Signature = base64(hmac-sha1(AccessKeySecret, StringToSign)
在URL中包含簽名
StringToSign = VERB + "\n" + CONTENT-MD5 + "\n" + CONTENT-TYPE + "\n" + EXPIRES + "\n" + CanonicalizedOSSHeaders + CanonicalizedResource Signature = urlencode(base64(hmac-sha1(AccessKeySecret, StringToSign)))
如果業(yè)務(wù)場景允許,推薦您使用SDK訪問OSS,免去手動計算簽名的過程。具體步驟,請參見使用阿里云SDK發(fā)起請求概述。
比對響應(yīng)體中的
StringToSign
字段與您發(fā)起請求的內(nèi)容是否存在差異。StringToSign
字段表示待簽字符串,即簽名算法中需要使用AccessKey Secret進行加密的內(nèi)容。請求示例如下:
PUT /bucket/abc?acl Date: Wed, 24 May 2023 02:12:30 GMT Authorization: OSS qn6q**************:77Dv**************** x-oss-abc: mymeta
以上請求計算得到的待簽字符串應(yīng)為:
PUT\n\n\nWed, 24 May 2023 02:12:30 GMT\nx-oss-abc:mymeta\n/bucket/abc?acl
關(guān)于簽名錯誤常見場景的更多信息,請參見0002-00000040。
TransferAccelerationDisabled
Transfer acceleration is disabled
問題原因:未開啟傳輸加速服務(wù)。
解決方案:如果您需要遠距離數(shù)據(jù)傳輸加速、加速上傳和下載GB或TB級大文件以及非靜態(tài)、非熱點數(shù)據(jù)下載加速等場景,請開啟傳輸加速服務(wù)。詳情請參見傳輸加速。
InvalidSecurityToken
The security token you provided is invalid
問題原因:臨時訪問憑證無效。
解決方案:請參見使用STS臨時訪問憑證訪問OSS進行排查。
AccessKeyIdAndSecurityTokenNotMatch
The OSS access key id and security token you provided does not match
問題原因:用戶提供的AccessKey和臨時訪問憑證不匹配。
解決方案:請參見使用STS臨時訪問憑證訪問OSS進行排查。
SecurityTokenExpired
The security token you provided has expired
問題原因:臨時訪問憑證已過期。
解決方案:重新請求STS服務(wù)獲取臨時訪問憑證。
AbnormalBucketOwnerStatus
The status of the bucket owner is abnormal
問題原因:暫未向目標Bucket的所屬用戶提供服務(wù)。
解決方案:請檢查用戶的阿里云賬號是否已注銷或因安全等原因被管控,是否因欠費原因被運營商暫停服務(wù)。
SecurityTokenNotSupported
This interface does not support security token
問題原因:當前接口暫不允許通過臨時訪問憑證權(quán)限進行調(diào)用。
解決方案:STS Token僅適用于臨時授權(quán)給特定用戶訪問OSS資源。如果您需要將Bucket開放給他人訪問,請參見訪問控制概述選擇適用的授權(quán)機制。
Security token is not supported in this region
問題原因:暫不支持在當前地域使用STS Token。
解決方案:關(guān)于哪些地域支持使用STS Token的詳情,請參見接入地址。
RequestTimeTooSkewed
The difference between the request time and the current time is too large
問題原因:請求發(fā)起的時間超過OSS服務(wù)器當前時間15分鐘。
解決方案:請檢查發(fā)送請求設(shè)備的系統(tǒng)時間,并根據(jù)時區(qū)調(diào)整到正確時間。
發(fā)送請求的機器或設(shè)備的系統(tǒng)時間,調(diào)整標準如下:
OSS的系統(tǒng)時間采用GMT時間,您的設(shè)備的系統(tǒng)時間需要調(diào)整到GMT時間,或與其相對應(yīng)的時區(qū)時間。GMT是零時區(qū)的區(qū)時,即世界標準時間。
Windows系統(tǒng)查看時區(qū)的方法:單擊
。例如,時區(qū)欄的+08:00表示您的設(shè)備系統(tǒng)時區(qū)是東八區(qū)。
Linux或Unix系統(tǒng)查看時區(qū)的方法:執(zhí)行date -R查看時間和時區(qū)。
下圖中的+0800表示您的設(shè)備系統(tǒng)時區(qū)是東八區(qū)。
支持在多個地域使用OSS。每個地域都使用GMT時間,您發(fā)送請求的設(shè)備系統(tǒng)時間也是GMT時間。
ImageDamage
The image file may be damaged
問題原因:圖片文件有部分信息丟失或損壞,導(dǎo)致無法正常識別或處理。
排查方法:請確保源文件沒有損壞,如有損壞請重新上傳本地文件。
UserDisable
UserDisable
問題原因:
賬號欠費或者由于安全原因,賬號被禁用。
未開通OSS服務(wù)。
解決方案:
請檢查賬號是否已欠費,或聯(lián)系技術(shù)支持進行安全受限核查。
開通OSS服務(wù)。
BucketDisable
BucketDisable
問題原因:Bucket因安全原因被禁用。
解決方案:請檢查賬號是否已欠費,或聯(lián)系技術(shù)支持進行安全受限核查。
CnameDenied
The cname belongs to another user
問題原因:該域名已綁定至其他Bucket。
解決方案:請更換域名或通過驗證域名所有權(quán)強制綁定域名,驗證域名所有權(quán)會解除域名與其他Bucket的綁定關(guān)系。請參見綁定自定義域名進行排查。
InvalidObjectState
The operation is not valid for the object's state
問題原因:下載歸檔類型Object時,以下兩種情況會導(dǎo)致報錯無效的Object狀態(tài)。
未提交RestoreObject請求或者上一次提交RestoreObject已超時。
已提交RestoreObject請求,但數(shù)據(jù)的RestoreObject操作還沒有完成。
解決方案:請參見RestoreObject進行排查。