UserDisable.UserDisable錯誤

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

<Code>UserDisable</Code>
<Message>UserDisable</Message>

有以下兩類原因:

  • 欠費被禁

    確認欠費方法:在OSS 管理主控台上開啟費用中心,檢查是否欠費。如果欠費,請及時儲值。

    说明
    • OSS欠費後,還可以正常使用24小時,24小時後禁止訪問。
    • 曆史數據保留15天,15天后曆史數據將被刪除。
    • 當您在訊息中心看到阿里雲OSS欠費提醒後,如下圖所示,請及時儲值,不會影響您的正常使用。
  • 安全原因被禁

    在OSS 管理主控台上開啟訊息中心,在右側的安全消息中查看違規通知。違規的原因有很多,比如您使用OSS做私服,您的圖片涉黃、涉暴等。

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

RequestTimeTooSkewed.The difference between…錯誤

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

<Code>RequestTimeTooSkewed</Code>
<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遇到如下的錯誤:

<Code>InvalidAccessKeyId</Code>
<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遇到如下的錯誤:

<Code>AccessDenied</Code>
<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異常拋出如下的異常,或返回如下錯誤:

<Error>
  <Code>AccessDenied</Code>
  <Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message>
  <RequestId>56EA****3EE6</RequestId>
  <HostId>my-oss-bucket-*****.aliyuncs.com</HostId>
  <Bucket>my-oss-bucket-***</Bucket>
  <Endpoint>oss-cn-****.aliyuncs.com</Endpoint>
</Error>
  • 其中Endpoint中的oss-cn-****.aliyuncs.com就是正確的Endpoint,請使用http://oss-cn-****.aliyuncs.comhttps://oss-cn-****.aliyuncs.com作為Endpoint訪問OSS。
  • 如果錯誤中沒有Endpoint,請登入OSS控制台,在Bucket管理中找到您訪問的Bucket,單擊進入Bucket概覽頁面。OSS網域名稱中可以看到內網和外網網域名稱。
  • 外網網域名稱是在公網上訪問OSS使用的網域名稱;內網網域名稱是指在阿里雲內部訪問的OSS使用的網域名稱。比如您在您的ECS上訪問OSS,可以使用內網網域名稱。
  • Endpoint是網域名稱去掉Bucket部分,加上訪問協議。例如上圖中OSS的公網網域名稱是oss-****.aliyuncs.com,它的公網Endpoint是http://oss-cn-****.aliyuncs.com;類似,內網Endpoint是http://oss-cn-****-internal.aliyuncs.com

ImageDamage.The image file may be damaged錯誤

訪問OSS遇到如下的錯誤:

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

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

AccessDenied.AccessDenied錯誤

訪問OSS遇到如下的錯誤:

<Code>AccessDenied</Code>
<Message>AccessDenied</Message>

原因:說明訪問OSS的用戶沒有當前操作的許可權。請確認使用的AccessKeyID/AccessKeySecret是正確的。如果使用的是子帳號/臨時賬戶(STS),請確認目前使用者的許可權。確認方法:

存取控制管理主控台單擊用戶管理,單擊需要確認許可權的用戶,單擊用戶授權策略 > 加入組的授權策略查看該用戶的許可權,確認是否已經賦予目前使用者Bucket/Object的操作許可權。

SignatureDoesNotMatch.The request signature we calculated…錯誤

訪問OSS遇到如下的錯誤:

<Code>SignatureDoesNotMatch</Code>
<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是不合法的,http://my-bucket.oss-cn-hangzhou.aliyuncs.comhttp://oss-cn-hangzhou.aliyuncs.com/、而 http:// 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. 如果您使用了代理,請檢查Proxy 伺服器是否添加額外的Header。

其它錯誤

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