閱讀907 返回首頁    go 小米MIX


OSS 403錯誤及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲

UserDisable.UserDisable錯誤

當您訪問OSS遇到如下的UserDisable錯誤:

  1. <Code>UserDisable</Code>
  2. <Message>UserDisable</Message>

有以下兩類原因:

  • 欠費被禁。確認欠費方法如下,在控製台上打開費用中心,檢查是否欠費。如果有欠費,請及時充值。

    OSS欠費後,還可以正常使用24小時,24小時後禁止訪問;曆史數據保留15天,15天後曆史數據將被刪除。當您在消息中心看到“阿裏雲OSS欠費提醒”後,請及時充值,不會影響您的正常使用。

  • 安全原因被禁。請在控製台上打開消息中心,在右側的安全消息中查看違規通知。違規的原因有很多,比如您使用OSS做私服,您的圖片涉黃、涉暴等。

    當您有“安全消息”時,請立即按照消息中的指示做相應處理,以免影響您的使用和信用。比如當您看到如下的“OSS違規文件凍結處理通知”消息時,請馬上刪除違規文件。

注意:如果您有賬戶處於被禁狀態,請務必處理;重新申請新賬戶,無法保證正常使用。

RequestTimeTooSkewed.The difference between…錯誤

訪問OSS遇到如下的RequestTimeTooSkewed錯誤:

  1. <Code>RequestTimeTooSkewed</Code>
  2. <Message>The difference between the request time and the current time is too large.</Message>

原因是,您發送請求的時間與OSS收到請求的時間,間隔超出了15分鍾,OSS從安全考慮認為該請求是無效的,返回上述錯誤。請檢查發送請求設備的係統時間,並根據時區調整到正確時間。

您可能會有下麵的疑問:

  • 發送請求的機器或設備的係統時間,調整標準是什麼呢?
    OSS的係統時間采用GMT時間,您的設備的係統時間,需要調整到GMT時間,或與其相對應的時區時間。GMT(Greenwich Mean Time)是零時區的區時,即世界標準時間。例如,您的訪問OSS的設備係統配置是東八區,係統時間調整到比GMT早8小時;其它類似。我國的標準時間—北京時間—就是東八區時間。如果您的係統時間是東八區,那麼您的係統時間調整到北京時間即可。

    Windows係統查看時區的方法。通過 控製麵板 > 時鍾、語言和區域 > 設置日期和時間 打開日期和時間, 時區 欄的 +08:00,表示您的設備時區是東八區。

    如果您的係統是Linux/Unix,請執行 date -R 查看時間和時區。下圖中的 +0800,表示您的設備係統時區是東八區。

  • 使用多個地域的OSS,比如杭州、新加坡、美國,時間同步有問題嗎?
    沒有問題。每個地域的OSS都使用GMT時間,您發送請求的設備係統時間也是GMT時間。

InvalidAccessKeyId.The OSS Access Key Id…錯誤

訪問OSS遇到如下的錯誤:

  1. <Code>InvalidAccessKeyId</Code>
  2. <Message>The OSS Access Key Id you provided does not exist in our records.</Message>

原因是,您的AccessKeyID禁用或不存在。排查方法如下:登錄阿裏雲控製台的 AccessKey 管理,確認訪問OSS使用的AccessKeyID存在且處於啟用狀態。

  • 如果您的AccessKeyID處於禁用狀態,請開啟。
  • 如果您的AccessKeyID不存在請創建,並使用新的AccessKeyID訪問OSS。

AccessDenied.The bucket you are attempting to…錯誤

訪問OSS遇到如下的錯誤:

  1. <Code>AccessDenied</Code>
  2. <Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message>

原因是:您訪問bucket使用的Endpoint不正確,如果您需要了解Endpoint的詳細信息,請參看OSS 基本概念

怎麼找到正確的Endpoint呢?如果SDK異常拋出如下的異常,或返回如下錯誤:

  1. <Error>
  2. <Code>AccessDenied</Code>
  3. <Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message>
  4. <RequestId>56EA98DE8158040021B23EE6</RequestId>
  5. <HostId>my-oss-bucket-byb.oss-cn-qingdao.aliyuncs.com</HostId>
  6. <Bucket>my-oss-bucket-byb</Bucket>
  7. <Endpoint>oss-cn-hangzhou.aliyuncs.com</Endpoint>
  8. </Error>

其中Endpoint中的oss-cn-hangzhou.aliyuncs.com就是正確的Endpoint,請使用https://oss-cn-hangzhou.aliyuncs.comhttps://oss-cn-hangzhou.aliyuncs.com作為Endpoint訪問OSS。如果錯誤中沒有Endpoint,請登錄OSS控製台,在Bucket管理中找到您訪問的bucket,點擊進入Bucket概覽頁麵。在OSS域名中可以看到內網和外網域名。

外網域名是在公網上訪問OSS使用的域名;內網域名是指在阿裏雲內部訪問的OSS使用的域名,比如您在您的ECS上訪問OSS,可以使用內網域名。

Endpoint是域名去掉bucket部分,加上訪問協議。例如上圖中 OSS的公網域名是oss-test-byb.oss-cn-hangzhou.aliyuncs.com,它的公網Endpoint是https://oss-cn-hangzhou.aliyuncs.com;類似,內網Endpoint是https://oss-cn-hangzhou-internal.aliyuncs.com

ImageDamage.The image file may be damaged錯誤

訪問OSS遇到如下的錯誤:

  1. <Code>ImageDamage</Code>
  2. <Message>The image file may be damaged.</Message>

說明圖片文件有部分信息丟失或損壞,導致無法正常識別或處理。您可能會有一個疑問,某圖片在本地用圖片處理器可以打開,OSS處理報錯。原因是,圖片瀏覽器會對損壞的圖片做些處理,OSS圖片服務暫時沒有這個操作。

AccessDenied.AccessDenied錯誤

訪問OSS遇到如下的錯誤:

  1. <Code>AccessDenied</Code>
  2. <Message>AccessDenied</Message>

說明訪問OSS的用戶沒有當前操作的權限。請確認使用的AccessKeyID/AccessKeySecret是正確的。如果使用的是子帳號/臨時賬戶(STS),請確認當前用戶的權限。確認方法:在控製台的訪問控製裏查看該用戶的權限,確認是否已經賦予當前用戶Bucket/Object的操作權限。

SignatureDoesNotMatch.The request signature we calculated…錯誤

訪問OSS遇到如下的錯誤:

  1. <Code>SignatureDoesNotMatch</Code>
  2. <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>

請按照以下步驟排查:

  1. 檢查endpoint
    請檢查endpoint前麵沒有bucket,後麵沒有多餘的/,前後沒有多餘的空格。比如下麵的endpoint是不合法的,https://my-bucket.oss-cn-hangzhou.aliyuncs.comhttps://oss-cn-hangzhou.aliyuncs.com/、而 https:// oss-cn-hangzhou.aliyuncs.comhttps:// oss-cn-hangzhou.aliyuncs.com是合法域名。
  2. 檢查AccessKeyID/AccessKeySecret
    請確認AccessKeyID/AccessKeySecret正確,確保AccessKeyID/AccessKeySecret前後都沒有空格,特別是使用了複製粘貼的情況。
  3. 檢查BucketName/ObjectKey
    請確保BucketName/ObjectKey命名合法有效,符合要求。
    • Bucket命名規範:隻能包括小寫字母、數字和短橫線(-),必須以小寫字母或者數字開頭,長度必須在3-63字節之間。
    • Object的命名規範:使用UTF-8編碼,長度必須在1-1023字節之間,不能以“/”或者“”字符開頭。
  4. 如果是您自己實現的簽名,請使用OSS SDK提供的簽名方法。
    OSS SDK提供了URL/Header簽名的實現,詳細請參看SDK文檔。
  5. 如果您的環境不適合使用SDK,的確需要自己實現簽名,簽名方法請參考用戶簽名驗證,仔細檢查每個簽名字段。
    OSS的論壇上提供了一個可視化簽名的工具,請比較每個簽名字段和最後的簽名,簽名工具地址
  6. 如果您使用了代理,請檢查代理服務器是否添加額外的Header。

其它錯誤

請根據SDK返回的錯誤碼、錯誤信息判斷原因,特別是錯誤信息會提示錯誤原因。如果懷疑錯誤跟網絡環境有關,請使用ossprobe排查問題,ossprobe會給出可能的原因。

最後更新:2016-11-23 16:04:10

  上一篇:go OSS跨域資源共享(CORS)錯誤及排除__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
  下一篇:go PostObject錯誤及排查___常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲