追加上传

此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