本文介紹OSS返回409錯誤的原因和解決方案。
BucketAlreadyExists
The requested bucket name is not available
問題原因:該Bucket已存在或被其他使用者佔用。
解決方案:請使用新的Bucket名稱建立Bucket。建立Bucket的具體操作,請參見控制台建立儲存空間。
Bucket already exists can't modify location
問題原因:不允許修改已建立Bucket所在的地區。
解決方案:重新建立Bucket,並在建立過程中指定Bucket所在的地區。
Cannot modify existing bucket's storage class或Bucket already exists can't modify storage type
問題原因:不允許修改已建立Bucket的儲存類型。
解決方案:重新建立Bucket,並在建立過程中指定Bucket的儲存類型。
Bucket already exists can't modify data redundancy type
問題原因:不允許修改已建立Bucket的資料容災類型。
解決方案:重新建立Bucket,並在建立過程中指定Bucket的資料容災類型。
BucketNotEmpty
The bucket you tried to delete is not empty
- 問題原因:要刪除的Bucket中存在未刪除的Object、未完成的分區上傳任務或Livechannel。
- 解決方案:
- 刪除Bucket中所有的檔案(Object)。
- 刪除Bucket中因分區上傳或斷點續傳產生的片段(Part)。
刪除片段的操作,請參見刪除片段。
- 刪除Bucket中所有的Livechannel。
刪除Livechannel的操作,請參見DeleteLiveChannel。有關Livechannel的資訊,請參見RTMP推流上傳。
CnameAlreadyExists
The cname has been attatched to your other bucket already
- 問題原因:
- 該網域名稱已綁定至當前帳號下的另一個Bucket。
問題現象:返回錯誤資訊中的CnameType為CNAME_OSS。
- 該網域名稱是圖片處理網域名稱。
問題現象:返回錯誤資訊中的CnameType為CNAME_IMG。
- 該網域名稱已綁定至當前帳號下的另一個Bucket。
- 解決方案:
- 針對返回錯誤資訊中的CnameType為CNAME_OSS的解決方案
- 針對返回錯誤資訊中的CnameType為CNAME_IMG的解決方案
PositionNotEqualToLength
Position is not equal to file length
- 問題原因:
- Position的值和當前Object的長度不一致。
- Position值為0時,如果沒有同名的Appendable Object,或者同名Appendable Object長度為0,則請求成功;其他情況均視為Position和Object長度不匹配的情形,返回此錯誤碼。
- 解決方案:您可以通過回應標頭
x-oss-next-append-position
得到下一次Position的值,並再次發起請求。由於並發的關係,即使把Position的值設定為x-oss-next-append-position
,該請求依然可能因為PositionNotEqualToLength
而失敗。請參見AppendObject進行排查。
FileAlreadyExists
The object you specified already exists and can not be overwritten
- 問題原因:當請求的Header中攜帶
x-oss-forbid-overwrite=true
時,表示禁止覆蓋同名檔案。如果檔案已存在,則返回該錯誤。 - 解決方案:
您可以通過以下兩種方式在簡單上傳、拷貝檔案、分區上傳等情境中覆蓋同名檔案:
- 不攜帶x-oss-forbid-overwrite參數,或將此參數設定為false。
- 對Bucket開啟版本控制,此時被覆蓋的檔案會以歷史版本的形式儲存下來,您可以隨時恢複任意歷史版本檔案。
LiveChannelDisabled
Live channel is disabled by owner
- 問題原因:LiveChannel處於disabled狀態時,OSS會禁止您對該LiveChannel進行推流操作。如果您正在向該LiveChannel推流,那麼推流的用戶端會被強制斷開(會有10s左右的延遲)。
- 解決方案:請確保LiveChannel處於enabled狀態時,再對該LiveChannel進行推流操作。詳情請參見PutLiveChannelStatus。
ChannelStillLive
Live channel couldn't be updated or deleted when channel is live
- 問題原因:LiveChannel處於Live狀態,即串連上推流地址後用戶端處於推流中的狀態時,不允許更新或刪除LiveChannel等操作。
- 解決方案:請在用戶端停止推流後進行更新或刪除LiveChannel等操作。
FileImmutable
The object you specified is immutable
- 問題原因:您試圖刪除或修改Bucket內處於保護狀態的Object。
- 解決方案:在Bucket的合規保留原則的保留周期內,不允許刪除或修改Bucket內的Object。保留周期到期後,您可以刪除或修改Bucket內的Object。請通過GetBucketWorm擷取保留周期。
RestoreAlreadyInProgress
The restore operation is in progress
- 問題原因:您已經成功提交RestoreObject請求,且服務端正在執行解凍操作。
- 解決方案:請不要重複提交RestoreObject請求。
KeyDisabled
The request was rejected because the key state is Disabled
- 問題原因:KMS服務密鑰已被禁用。
- 解決方案:調用EnableKey介面啟用指定的主要金鑰進行加解密。
KeyPendingDeletion
The request was rejected because the key state is PendingDeletion
- 問題原因:KMS服務密鑰處於待刪除狀態。
- 解決方案:密鑰狀態處於待刪除狀態時,無法用於加密、解密、產生資料密鑰操作。主要金鑰一旦刪除,將無法恢複,使用該主要金鑰加密的內容及產生的資料密鑰也將無法解密。因此,對於主要金鑰的刪除,KMS只提供申請刪除的方式,而不提供直接刪除的方式,詳情請參見ScheduleKeyDeletion。如果您有刪除密鑰方面的需求,可以通過DisableKey禁用密鑰。
KeyPendingImport
The request was rejected because the key state is PendingImport
- 問題原因:KMS服務密鑰正處於預匯入狀態。
- 解決方案:KMS服務密鑰正處於預匯入狀態時,無法用於加密、解密、產生資料密鑰操作。請調用ImportKeyMaterial介面完成密鑰材料的匯入。
WORMConfigurationAlreadyExists
The WORM Configuration already exists
- 問題原因:合規保留原則已存在。
- 解決方案:僅支援為目標Bucket配置一條合規保留原則。合規保留原則未鎖定前,您可以刪除該策略,然後建立策略。詳情請參見保留原則。
InventoryConfigurationAlreadyExists
The Inventory Configuration already exists
- 問題原因:Bucket清單規則已存在。
- 解決方案:為目標Bucket配置清單規則時,確保清單名稱在當前Bucket下全域唯一。您可以通過GetBucketInventory擷取已配置的清單規則。
StaleFile
File is stale for this operation
- 問題原因:並發修改對象中繼資料或者並發修改對象標籤。
- 解決方案:請勿執行對象中繼資料或對象標籤的並發修改操作。