0026-00000016

问题描述

追加请求position请求参数不正确。

问题原因

您发起了AppendObject请求,但是请求参数position的值不正确,即position的值和当前Object的长度不一致。

问题示例

比如您发起了如下请求:

POST /example.log?append&position=32 HTTP/1.1
Content-Length:ContentLength
Content-Type: ContentType
Host: bucketname.oss.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

如果在您发起请求时,example.log的文件长度不是32,此时上述请求会返回该错误。

解决方案

使用HeadObject请求可以查看对AppendObject文件进行追加请求需要使用的position参数:

HEAD /example.log HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 03 Feb 2023 05:57:00 GMT
Authorization: OSS qn6q**************:77Dv****************
HTTP/1.1 200 OK
Date: Fri, 03 Feb 2023 05:57:16 GMT
Content-Type: application/octet-stream
Content-Length: 4 
Connection: keep-alive
x-oss-request-id: 63DCA23C5B537C30327581DB
Accept-Ranges: bytes
ETag: A5750CC1A7FD15****A2DC6300000000
Last-Modified: Fri, 03 Feb 2023 05:57:16 GMT
x-oss-object-type: Appendable
x-oss-hash-crc64ecma: 18020588380933092773
x-oss-next-append-position: 4
x-oss-storage-class: Standard

上述响应中x-oss-next-append-position响应头说明下一次AppendObject请求的position参数应该是4。

其他注意事项:

  • 由于并发的关系,即使把position的值设置为x-oss-next-append-position,该请求依然可能出现该错误。

  • position值为0时,如果没有同名Appendable Object,或者同名Appendable Object长度为0,该请求成功;其他情况均视为position和Object长度不匹配的情形,返回此错误码。

相关文档