完成分片上传

此 POST 操作用于将所有数据Part都上传完成后完成整个文件的分片上传。

请求

  • 请求语法

    • 内容

        POST /ObjectName?uploadId=UploadId HTTP/1.1
        Host: {BucketName}.{Endpoint}
        Date: {date}
        Authorization: {SignatureValue}    
      
        <CompleteMultipartUpload>
            <Part>
                <PartNumber>PartNumber</PartNumber>
                <ETag>ETag</ETag>
            </Part>
            ...
        </CompleteMultipartUpload>
      
    • 描述

        Endpoint:参考与region地域的关系
        SignatureValue:参考签名算法
      
  • 请求参数

  • 非公共请求头

  • 请求体

名称 类型 是否必须 描述
CompleteMultipartUpload 容器 保存CompleteMultipartUpload请求内容的容器。
子节点:一个或多个Part元素。
父节点:无
ETag 字符串 Part成功上传后,OSS返回的ETag值。
父节点:Part
Part 容器 保存已上传Part信息的容器。
子节点:ETag、PartNumber。
父节点:CompleteMultipartUpload
PartNumber 整数 Part分片编号,与ETag对应。
父节点:Part

响应

  • 非公共响应头

  • 响应体

名称 类型 描述
Bucket 字符串 Bucket名称。
父节点:CompleteMultipartUploadResult
CompleteMultipartUploadResult 容器 保存Complete Multipart Upload请求结果的容器。
子节点:Bucket、Key、ETag、Location。
父节点:None
ETag 字符串 Object生成时会创建相应的ETag ,ETag用于标识一个Object的内容。
通过CompleteMultipartUpload请求创建的Object,ETag值是基于一定计算规则生成的唯一值,但不是其内容的MD5值。
父节点:CompleteMultipartUploadResult
Location 字符串 新创建Object的URL。
父节点:CompleteMultipartUploadResult
Key 字符串 新创建Object的名字。
父节点:CompleteMultipartUploadResult

示例

  • 请求

      POST /multipart.data?uploadId=0004B9B2D2F7815C432C9057C031**** HTTP/1.1
      Host: oss-example.oss-cn-beijing.inspurcloud.com
      Content-Length:6291456
      Date: Fri, 26 Dec 2014 06:34:32 GMT
      Authorization: authorization string    
    
      <CompleteMultipartUpload> 
          <Part> 
              <PartNumber>1</PartNumber>  
              <ETag>"3349DC700140D7F86A0784842780****"</ETag> 
          </Part>  
          <Part> 
                <PartNumber>5</PartNumber>  
                 <ETag>"8EFDA8BE206636A695359836FE0A****"</ETag> 
          </Part>  
          <Part> 
              <PartNumber>8</PartNumber>  
              <ETag>"8C315065167132444177411FDA14****"</ETag> 
          </Part> 
      </CompleteMultipartUpload>
    
  • 响应

      HTTP/1.1 200 OK
      x-oss-request-id: 996c76696e6727732072657175657374
      Date: Fri, 26 Dec 2014 06:48:46 GMT
      Content-Length: 0
      Connection: keep-alive
    
      <?xml version="1.0" encoding="UTF-8"?>
      <CompleteMultipartUploadResult xmlns=”http://doc.oss-cn-beijing.inspurcloud.com”>
          <Location>oss-example.oss-cn-beijing.inspurcloud.com/multipart.data</Location>
          <Bucket>oss-example</Bucket>
          <Key>multipart.data</Key>
          <ETag>"B864DB6A936D376F9F8D3ED3BBE540****"</ETag>
      </CompleteMultipartUploadResult>
    

错误码

错误码 状态码 描述
InvalidDigest 400 为了保证数据在网络传输过程中不出现错误,用户发送请求时可以携带Content-MD5,OSS计算上传数据的MD5与用户上传的MD5值不一致。
MalformedXML 400 请求体格式错误。
InvalidRange 416 分片数量超过上限。
NoSuchUpload 404 分片上传ID不存在。
EntityTooSmall 400 分片小于最小值。