本文介绍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
- 问题原因:并发修改对象元数据或者并发修改对象标签。
- 解决方案:请勿执行对象元数据或对象标签的并发修改操作。