本文介紹OSS返回409錯誤的原因和解決方案。

BucketAlreadyExists

The requested bucket name is not available

  • 問題原因:該Bucket已存在或被其他用戶占用。

  • 解決方案:請使用新的Bucket名稱創(chuàng)建Bucket。創(chuàng)建Bucket的具體操作,請參見創(chuàng)建存儲空間

Bucket already exists can't modify location

  • 問題原因:不允許修改已創(chuàng)建Bucket所在的地域。

  • 解決方案:重新創(chuàng)建Bucket,并在創(chuàng)建過程中指定Bucket所在的地域。

Cannot modify existing bucket's storage classBucket already exists can't modify storage type

  • 問題原因:不允許修改已創(chuàng)建Bucket的存儲類型。

  • 解決方案:重新創(chuàng)建Bucket,并在創(chuàng)建過程中指定Bucket的存儲類型。

Bucket already exists can't modify data redundancy type

  • 問題原因:不允許修改已創(chuàng)建Bucket的數(shù)據(jù)容災(zāi)類型。

  • 解決方案:重新創(chuàng)建Bucket,并在創(chuàng)建過程中指定Bucket的數(shù)據(jù)容災(zāi)類型。

BucketNotEmpty

The bucket you tried to delete is not empty

  • 問題原因:要刪除的Bucket中存在未刪除的Object、未完成的分片上傳任務(wù)或Livechannel。
  • 解決方案:
    • 刪除Bucket中所有的文件(Object)。

      刪除文件的操作,請參見刪除文件。如果文件數(shù)量較多,推薦結(jié)合生命周期規(guī)則批量刪除文件,請參見設(shè)置生命周期規(guī)則

    • 刪除Bucket中因分片上傳或斷點續(xù)傳產(chǎn)生的碎片(Part)。

      刪除碎片的操作,請參見管理碎片

    • 刪除Bucket中所有的Livechannel。

      刪除Livechannel的操作,請參見DeleteLiveChannel。有關(guān)Livechannel的信息,請參見RTMP推流上傳

CnameAlreadyExists

The cname has been attatched to your other bucket already

  • 問題原因:
    • 該域名已綁定至當(dāng)前賬號下的另一個Bucket。

      問題現(xiàn)象:返回錯誤信息中的CnameTypeCNAME_OSS。

    • 該域名是圖片處理域名。

      問題現(xiàn)象:返回錯誤信息中的CnameTypeCNAME_IMG。

  • 解決方法:
    • 針對返回錯誤信息中的CnameTypeCNAME_OSS的解決方法
      1. 解綁已在其他Bucket綁定的Cname。
        1. 登錄OSS管理控制臺
        2. 單擊Bucket列表,然后單擊目標(biāo)Bucket名稱。
        3. 在左側(cè)導(dǎo)航欄,選擇Bucket配置 > 域名管理
        4. 在域名列表中,單擊目標(biāo)域名右側(cè)的域名綁定配置
        5. 域名綁定配置面板,單擊解除綁定
          重要 Cname解綁后,所有關(guān)聯(lián)該Cname的服務(wù)均無法正常訪問。
        6. 單擊確定
      2. 綁定Cname至目標(biāo)Bucket。

        綁定Cname的具體步驟,請參見綁定自定義域名

    • 針對返回錯誤信息中的CnameTypeCNAME_IMG的解決方法
      1. 解綁已在其他Bucket綁定的Cname。
        1. 登錄OSS管理控制臺
        2. 單擊Bucket列表,然后單擊目標(biāo)Bucket名稱。
        3. 在左側(cè)導(dǎo)航欄,選擇數(shù)據(jù)處理 > 圖片處理
        4. 圖片處理頁簽,單擊解除自定義域名綁定
          重要
          • 圖片處理頁簽?zāi)J(rèn)顯示處于enabled狀態(tài)且為最近一次綁定的Cname,請確認(rèn)該Cname是否為待解綁的Cname。

            如果圖片處理頁簽不顯示Cname,請聯(lián)系技術(shù)支持解決該問題。

          • Cname解綁后,所有關(guān)聯(lián)該Cname的服務(wù)均無法正常訪問。
          cname
      2. 綁定Cname至目標(biāo)Bucket。

        綁定Cname的具體步驟,請參見綁定自定義域名

PositionNotEqualToLength

Position is not equal to file length

  • 問題原因:
    • Position的值和當(dāng)前Object的長度不一致。
    • Position值為0時,如果沒有同名的Appendable Object,或者同名Appendable Object長度為0,則請求成功;其他情況均視為PositionObject長度不匹配的情形,返回此錯誤碼。
  • 解決方案:您可以通過響應(yīng)頭x-oss-next-append-position得到下一次Position的值,并再次發(fā)起請求。由于并發(fā)的關(guān)系,即使把Position的值設(shè)置為x-oss-next-append-position,該請求依然可能因為PositionNotEqualToLength而失敗。請參見AppendObject進(jìn)行排查。

FileAlreadyExists

The object you specified already exists and can not be overwritten

  • 問題原因:當(dāng)請求的Header中攜帶x-oss-forbid-overwrite=true時,表示禁止覆蓋同名文件。如果文件已存在,則返回該錯誤。
  • 解決方案:

    您可以通過以下兩種方式在簡單上傳、拷貝文件、分片上傳等場景中覆蓋同名文件:

    • 不攜帶x-oss-forbid-overwrite參數(shù),或?qū)⒋藚?shù)設(shè)置為false。
    • Bucket開啟版本控制,此時被覆蓋的文件會以歷史版本的形式保存下來,您可以隨時恢復(fù)任意歷史版本文件。

LiveChannelDisabled

Live channel is disabled by owner

  • 問題原因:LiveChannel處于disabled狀態(tài)時,OSS會禁止您對該LiveChannel進(jìn)行推流操作。如果您正在向該LiveChannel推流,那么推流的客戶端會被強(qiáng)制斷開(會有10s左右的延遲)。
  • 解決方案:請確保LiveChannel處于enabled狀態(tài)時,再對該LiveChannel進(jìn)行推流操作。詳情請參見PutLiveChannelStatus

ChannelStillLive

Live channel couldn't be updated or deleted when channel is live

  • 問題原因:LiveChannel處于Live狀態(tài),即連接上推流地址后客戶端處于推流中的狀態(tài)時,不允許更新或刪除LiveChannel等操作。
  • 解決方案:請在客戶端停止推流后進(jìn)行更新或刪除LiveChannel等操作。

FileImmutable

The object you specified is immutable

  • 問題原因:您試圖刪除或修改Bucket內(nèi)處于保護(hù)狀態(tài)的Object。
  • 解決方案:在Bucket的合規(guī)保留策略的保留周期內(nèi),不允許刪除或修改Bucket內(nèi)的Object。保留周期到期后,您可以刪除或修改Bucket內(nèi)的Object。請通過GetBucketWorm獲取保留周期。

RestoreAlreadyInProgress

The restore operation is in progress

  • 問題原因:您已經(jīng)成功提交RestoreObject請求,且服務(wù)端正在執(zhí)行解凍操作。
  • 解決方案:請不要重復(fù)提交RestoreObject請求。

KeyDisabled

The request was rejected because the key state is Disabled

  • 問題原因:KMS服務(wù)密鑰已被禁用。
  • 解決方案:調(diào)用EnableKey接口啟用指定的主密鑰進(jìn)行加解密。

KeyPendingDeletion

The request was rejected because the key state is PendingDeletion

  • 問題原因:KMS服務(wù)密鑰處于待刪除狀態(tài)。
  • 解決方案:密鑰狀態(tài)處于待刪除狀態(tài)時,無法用于加密、解密、生成數(shù)據(jù)密鑰操作。主密鑰一旦刪除,將無法恢復(fù),使用該主密鑰加密的內(nèi)容及產(chǎn)生的數(shù)據(jù)密鑰也將無法解密。因此,對于主密鑰的刪除,KMS只提供申請刪除的方式,而不提供直接刪除的方式,詳情請參見ScheduleKeyDeletion。如果您有刪除密鑰方面的需求,可以通過DisableKey禁用密鑰。

KeyPendingImport

The request was rejected because the key state is PendingImport

  • 問題原因:KMS服務(wù)密鑰正處于預(yù)導(dǎo)入狀態(tài)。
  • 解決方案:KMS服務(wù)密鑰正處于預(yù)導(dǎo)入狀態(tài)時,無法用于加密、解密、生成數(shù)據(jù)密鑰操作。請調(diào)用ImportKeyMaterial接口完成密鑰材料的導(dǎo)入。

WORMConfigurationAlreadyExists

The WORM Configuration already exists

  • 問題原因:合規(guī)保留策略已存在。
  • 解決方案:僅支持為目標(biāo)Bucket配置一條合規(guī)保留策略。合規(guī)保留策略未鎖定前,您可以刪除該策略,然后新建策略。詳情請參見保留策略

InventoryConfigurationAlreadyExists

The Inventory Configuration already exists

  • 問題原因:Bucket清單規(guī)則已存在。
  • 解決方案:為目標(biāo)Bucket配置清單規(guī)則時,確保清單名稱在當(dāng)前Bucket下全局唯一。您可以通過GetBucketInventory獲取已配置的清單規(guī)則。

StaleFile

File is stale for this operation

  • 問題原因:并發(fā)修改對象元數(shù)據(jù)或者并發(fā)修改對象標(biāo)簽。
  • 解決方案:請勿執(zhí)行對象元數(shù)據(jù)或?qū)ο髽?biāo)簽的并發(fā)修改操作。