上云无忧 > 文档中心 > 天翼云对象存储(OOS经典版)I型HTTP REST接口Complete Multipart Upload
对象存储
天翼云对象存储(OOS经典版)I型HTTP REST接口Complete Multipart Upload

文档简介:
该接口通过合并之前的上传片段来完成一次分片上传过程。 用户首先初始化分片上传过程,然后通过Upload Part接口上传所有分片。在成功将一次分片上传过程的所有相关片段上传之后,调用这个接口来结束分片上传过程。当收到这个请求的时候,OOS会以分片号升序排列的方式将所有片段依次拼接来创建一个新的对象。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

Complete Multipart Upload


该接口通过合并之前的上传片段来完成一次分片上传过程。

用户首先初始化分片上传过程,然后通过Upload Part接口上传所有分片。在成功将一次分片上传过程的所有相关片段上传之后,调用这个接口来结束分片上传过程。当收到这个请求的时候,OOS会以分片号升序排列的方式将所有片段依次拼接来创建一个新的对象。在这个Complete Multipart Upload请求中,用户需要提供一个片段列表。同时,必须确保这个片段列表中的所有片段必须是已经上传完成的,Complete Multipart Upload操作会将片段列表中提供的片段拼接起来。对片段列表中的每个片段,需要提供该片段上传完成时返回的ETag头的值和对应的分片号。

OOS提供了不合并片段也可以读取Object内容的功能。在没有调用Complete Multipart Upload接口合并片段时,也可以通过调用Get Object接口来获取文件内容,OOS会根据最近一次创建的uploadId,以分片号升序的方式顺序读取片段内容,返回给客户端。

请求语法

POST /ObjectName?uploadId=UploadId HTTP/1.1

Host:   BucketName.oos-cn.ctyunapi.cn

Date: Date

Content-Length: Size

Authorization: Signature

 

<CompleteMultipartUpload>

<Part>

<PartNumber>PartNumber</PartNumber>

<ETag>ETag</ETag>

</Part>

...

</CompleteMultipartUpload>

 

请求参数

请求头格式

请求元素

名称

描述

是否必须

CompleteMultipartUpload

请求的容器。

父节点:无

类型:容器

子节点:1个或多个Part元素

Part

一个片段的容器。

父节点:CompleteMultipartUpload

类型:容器

子节点:PartNumber, ETag

PartNumber

标识片段的分片号。

父节点:Part

类型:Integer

ETag

片段上传完成时返回的Etag内容。

父节点:Part

类型:String

返回元素

名称

描述

CompleteMultipartUploadResult

包含整个响应的容器。

类型:容器

子节点:Location, Bucket, Key, ETag

父节点:无

Location

新创建对象的URL地址。

类型:URI

父节点:CompleteMultipartUploadResult

Bucket

分片上传对应的对象容器。

类型:String

父节点:CompleteMultipartUploadResult

Key

新创建的对象的Key。

类型:String

父节点:CompleteMultipartUploadResult

ETag

ETag用来标识新创建的对象数据。

类型:String

父节点:CompleteMultipartUploadResult

出错响应

响应代码

描述

HTTP状态码

InvalidPart

一个或者多个指定片段无法找到,片段可能没有被上传,或者指定的ETag值跟片段的ETag值不匹配

400 Bad Request

InvalidPartOrder

片段列表不以升序排列,片段列表必须根据分片号按顺序排列

400 Bad Request

NoSuchUpload

指定的分片上传过程不存在,上传ID可能非法,分片上传过程可能被终止或者已经完成

404Not Found

InvalidPartSize

 

如果小于5M的分片为2片或者2片以上,会终止合并分片上传。

400 Bad   Request 

请求示例

下面的分片上传请求在CompleteMultipartUpload元素中指定了三个片段。

POST /example-object?uploadId=AAAsb2FkIElEIGZvciBlbHZpbmcncyWeeS1tb3ZpZS5tMnRzIR

RwbG9hZA HTTP/1.1

Host:   example-bucket.oos-cn.ctyunapi.cn

Date: Mon, 1 Nov 2010 20:34:56 GMT

Content-Length: 391

Authorization:   AWS 7799e793ce4624ee7e5a:xQE0diMbLRepdf3YB+FIEXAMPLE=

 

<CompleteMultipartUpload>

<Part>

<PartNumber>1</PartNumber>

<ETag>"a54357aff0632cce46d942af68356b38"</ETag>

</Part>

<Part>

<PartNumber>2</PartNumber>

<ETag>"0c78aef83f66abc1fa1e8477f296d394"</ETag>

</Part>

<Part>

<PartNumber>3</PartNumber>

<ETag>"acbd18db4cc2f85cedef654fccc4a4d8"</ETag>

</Part>

</CompleteMultipartUpload>

 

返回示例

下面的响应中表示一个对象被拼接成功。

HTTP/1.1 200 OK

x-amz-id-2: Uuag1LuByRx9e6j5Onimru9pO4ZVKnJ2Qz7/C1NPcfTWAtRPfTaOFg==

x-amz-request-id: 656c76696e6727732072657175657374

Date: Mon, 1 Nov 2010 20:34:56 GMT

Connection: close

Server: CTYUN

 

<?xml version="1.0"   encoding="UTF-8"?>

<CompleteMultipartUploadResult   xmlns="/doc/2006-03-01/">

<Location>/span>oos-cn.ctyunapi.cn/example-Object</Location>

<Bucket>example-Bucket</Bucket>

<Key>example-Object</Key>

</CompleteMultipartUploadResult>

相似文档
  • 该接口用于终止一次分片上传操作。分片上传操作被终止后,用户不能再通过上传ID上传其它片段,之前已上传完成的片段所占用的存储空间将被释放。如果此时任何片段正在上传,该上传过程可能会也可能不会成功。所以,为了释放所有片段所占用的存储空间,可能需要多次终止分片上传操作。
  • 该操作用于列出一次分片上传过程中已经上传完成的所有片段。 该操作必须包含一个通过Initial Multipart Upload操作获取的上传ID。该请求最多返回1000个上传片段信息,默认返回的片段数是1000。用户可以通过指定max-parts参数来指定一次请求返回的片段数。
  • 可以将已经存在的Object作为分段上传的片段,拷贝生成一个新的片段。需要指定请求头x-amz-copy-source来定义拷贝源。如果只拷贝源Object中的一部分,需要增加请求头x-amz-copy-source-range。
  • 批量删除Object功能支持用一个HTTP请求删除一个bucket中的多个object。如果你知道你想删除的object名字,此功能可以批量删除这些object,而不用发送多个单独的删除请求。
  • 通过MultipleUpload类以及文件上传请求UploadFileRequest类,实现基于分段上传的断点续传的功能。 参数设置 名称 描述 EnableCheckpoint 是否开启断点续传功能 默认:关闭 PartSize 每个分段的大小partSize,若partSize小于5MB,则会将partSize调整至5MB 默认:5MB
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部