追加上传
此PUT接口可以添加追加上传一个对象文件到某个存储桶。如果要使用此接口,需要具有该存储桶的写权限。
请求
请求语法
内容
PUT /{ObjectKey}?append&position={appendPosition} HTTP/1.1 Host: {BucketName}.{Endpoint} Date: {date} Authorization: {SignatureValue}
描述
Endpoint:参考与region地域的关系 SignatureValue:参考签名算法 appendPosition:此对象当前大小,首次追加可设为0
请求参数
无
非公共请求头
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
Append | 字符串 | 是 | 用于指定AppendObject操作。 |
Position | 字符串 | 是 | 用于指定从何处进行追加。 首次追加操作的position必须为0,后续追加操作的position是Object的当前大小。例如,第一次AppendObject请求指定position值为0,content-length是65536,则第二次AppendObject需要指定position为65536。 每次操作成功后,响应消息头x-oss-next-append-position也会标明下一次追加的position。 |
Cache-Control | 字符串 | 否 | 指定该Object的网页缓存行为。 默认值:None |
Content-Disposition | 字符串 | 否 | 指定该Object被下载时的名称。 默认值:None |
Content-Encoding | 字符串 | 否 | 指定文件内容编码格式。 默认值:None |
Content-Length | 字符串 | 否 | 指明对象的大小,按字节。 默认值:None |
Content-MD5 | 字符串 | 否 | 对消息内容(不包括头部)计算MD5值,获得128比特位数字,然后对该数字进行base64编码,用于对象完整性校验。 默认值:None |
Content-Type | 字符串 | 否 | 用于描述文件内容MIME格式。 默认值:binary/octet-stream 有效值: MIME types |
Expect | 字符串 | 否 | 当你使用 100-continue 时,直到收到确认时才会发送请求体。如果头部信息被拒绝,请求体不会被发送 默认值:None 有效值:100-continue |
Expires | 字符串 | 否 | 对象存在于缓存的有效时间日期。 默认值:None |
x-oss-meta-* | 字符串 | 否 | 用户元数据前缀标识。若某个头部前缀为 x-oss-meta-, 则为用户自定义元数据。 默认值:None |
x-oss-storage-class | 字符串 | 否 | 设置存储方式。 默认值:None 有效值:STANDARD |
x-oss-acl | 字符串 | 否 | 定义 Object 的 ACL 属性。用于对象的预定义权限。 默认值:private 有效值:private,public-read-write,public-read; (提示)为用户授予权限的功能,在系统设计中,需要考虑,暂时不用实现,可以参考(x-oss-grant-read、x-oss-grant-write、x-oss-grant-full-control) |
x-oss-storage-class | 字符串 | 否 | 指定Object的存储类型。取值:Standard、IA、Archive支持的接口:PutObject、InitMultipartUpload、AppendObject、 PutObjectSymlink、CopyObject。 对于任意存储类型的Bucket,若上传Object时指定此参数,则此次上传的Object将存储为指定的类型。例如,在IA类型的Bucket中上传Object时,若指定x-oss-storage-class为Standard,则该Object直接存储为Standard。 该值仅在首次执行AppendObject操作时有效,后续追加时不生效。 |
请求体
无
响应
- 非公共响应头
名称 | 类型 | 描述 |
---|---|---|
ETag | 字符串 | ETag (entity tag) 在每个 Object 生成的时候被创建,ETag 值是该 Object 内容的uuid,可以用于检查该 Object 内容是否发生变化。 |
x-oss-next-append-position | 整型 | 下次追加对象时的position |
x-oss-object-type | 枚举字符串 | 表示该对象为Appendable对象或者Normal对象 有效值:Appendable;Normal |
- 响应体
无
示例
首次追加对象,position设置为0,后续追加position为前次响应头中x-oss-next-append-position值。
请求
put /my-image.jpg?append&position=0 HTTP/1.1 Host: oss-example.oss-cn-beijing.inspurcloud.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: authorization string Content-Type: text/plain Content-Length: 9999 Expect: 100-continue [data]
响应
HTTP/1.1 100 Continue HTTP/1.1 200 OK x-oss-requestid:dbea4ce4ec23415b9e454ecfa25ec4d9 Date: Wed, 12 Oct 2009 17:50:00 GMT ETag: "1b2cf535f27731c974343645a3985328" Content-Length: 0 Connection: keep-alive x-oss-next-append-position: 9999 x-oss-object-type: Appendable Server: [data]
错误码
错误码 | 描述 | 状态码 |
---|---|---|
409 | position和对象大小不同 | PositionNotEqualToLength |
409 | 该对象无法追加 | ObjectNotAppendable |
409 | 该桶开通过版本控制,无法追加对象 | InvalidBucketstate |