最近更新时间:2022-11-08
使用AppendObject接口用于以追加写的方式上传Object。
Apennd上传对象若为归档对象,再继续上传之前,需要先进行解冻操作。
其它操作 | 关系描述 |
PutObject | 如果对一个已经存在的AppendableObject进行PutObject操作,该AppendableObject会被新的Object覆盖,类型变为Normal Object。 |
HeadObject | 对AppendableObject执行HeadObject操作会返回x-amz-next-append-position以及x-amz-object-type。AppendableObject的x-amz-object-type为Appendable。 |
GetBucket | GetBucket请求的响应中,会把AppendableObject的Type设为Appendable。 |
POST /ObjectName?append&position={Position} HTTP/1.1 Content-Length:{ContentLength} Content-Type: {ContentType} Host: examplebucket.region.unicloudsrv.com Date: GMT Date Authorization: SignatureValue |
AppendObject的请求消息参数必须包含append和position。append和position均为规范化资源,需要包含在签名中。
append:用于指定这是一个AppendObject操作。
position:用于指定从何处进行追加。首次追加操作的position必须为0,后续追加操作的position是Object的当前长度。例如,第一次AppendObject请求指定position值为0,content-length是65536,则第二次AppendObject需要指定position为65536。
每次操作成功后,响应消息头x-amz-next-append-position也会标明下一次追加的position。
注意:
当position值为0时,目标Bucket下如果没有同名Appendable Object,或者同名Appendable Object长度为0,该请求成功;其他情况均视为position和Object长度不匹配的情形,返回PositionNotEqualToLength错误码。
Append Object产生的Object长度限制和PutObject一样。每次AppendObject都会更新该Object的最后修改时间。
在position值正确的情况下,对已存在的Appendable Object追加一个长度为0的内容,该操作不会改变Object的状态。
消息头名称 | 类型 | 描述 |
Cache-Control | 字符串 | 指定该Object的网页缓存行为。详情参考RFC2616。 |
Content-Disposition | 字符串 | 指定该Object被下载时的名称。详情参考RFC2616。 |
Content-Encoding | 字符串 | 指定该Object的内容编码格式。详情参考RFC2616。 |
Content-MD5 | 字符串 | Content-MD5是一串由MD5算法生成的值,该请求头用于检查消息内容是否与发送时一致。 |
Expires | 整数 | 过期时间。详情参考RFC2616。 |
x-amz-object-acl | 字符串 | 指定Object的访问权限。 |
x-amz-storage-class | 字符串 | 指定Object的类型,合法值:STANDARD、STANDARD_IA |
消息头名称 | 类型 | 描述 |
x-amz-next-append-position | 64位整型 | 下一次请求应当提供的position,即当前Object长度。 |
错误代码 | HTTP 状态码 | 说明 |
ObjectNotAppendable | 409 | 不能对一个非Appendable Object进行AppendObject操作。 |
PositionNotEqualToLength | 409 | position的值和当前Object的长度不一致。您可以通过响应头x-amz-next-append-position得到下一次position,并再次进行请求。 |
POST /dxcc.txt?append&position=0 HTTP/1.1 Host: test.oss-cn-north-1.unicloudsrv.com Cache-control: no-cache Expires: Mon, 08 Dec 2018 18:00:00 GMT Content-Encoding: utf-8 Content-Disposition: attachment;filename=dxcc.txt Date: Mon, 08 Dec 2018 12:00:00 GMT Content-Type: text/plain Content-Length: 123 Authorization: AWS w4yfaJhgdosBantOdfzsbnbmqD+pnnsbqPbawgRlnwi= [123 bytes of object data] |
HTTP/1.1 200 OK Date: Mon, 08 Dec 2018 12:00:01 GMT ETag: dc68aa62edee9c510eea58429de15f71 Connection: keep-alive Content-Length: 0 X-Amz-Next-Append-Position: 123 |