本文介绍OSS返回409错误的原因和解决方案。

BucketAlreadyExists

  • 错误信息:The requested bucket name is not available.
  • 问题原因:该Bucket已存在或被其他用户占用。
  • 解决方案:请使用新的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推流上传

ObjectNotAppendable

  • 错误信息:The object is not appendable.
  • 问题原因:对一个不是可追加类型(Appendable)的Object执行AppendObject操作。
  • 解决方案:请确保Object为可追加类型。OSS有三种类型的Object,分别为Normal、Appendable和Multipart。只有Appendable类型的Object才能执行AppendObject。

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进行排查。

FileImmutable

  • 错误信息:he object you specified is immutable.
  • 问题原因:您试图删除或修改Bucket内处于保护状态的Object。
  • 解决方案:请确保要删除或修改的Object没有处于受保护状态。请参见GetBucketWorm进行排查。