完成分片 - FinishMultipartUpload
简介
完成分片上传
完成分片上传是把之前的各个分片数据块组合成一个文件。由于分片上传适用的文件一般较大,传输耗时较长,等上传完毕开始指定的object可能已经被占用,遇到这种情形时会采用newObject参数的值作为文件最终的object,否则仍然采用原来的object。
定义
句法(Syntax):
POST /<object_name>?uploadId=<upload_id>&newObject=<new_object> HTTP/1.1
Host: <bucket_name>.cn-bj.ufileos.com
Authorization: <token>
Content-Type: <mimetype>
Content-Length: 63请求参数(Request Parameters)
请求头(Request Headers)
| Name | Type | Description | Required | 
|---|---|---|---|
| Authorization | String | 上传请求的授权签名,API 签名算法 | Yes | 
| Content-Length | Integer | 请求body部分的长度 | Yes | 
| Content-Type | String | 请求body部分的类型 | No | 
| X-Ufile-Meta- * | String | US3中规定所有以X-Ufile-Meta-为前缀的参数视为用户自定义元数据(User Meta),比如x-ufile-meta-location。一个文件可以有多个类似的参数,但所有的User Meta总大小不能超过8KB。这些User Meta信息会在GetFile或者HeadFile的时候在HTTP头部中返回。 | No | 
| X-Ufile-Metadata-Directive | String | UNCHANGED(默认值):保持初始化时设置的用户自定义元数据不变。 REPLACE:忽略初始化分片时设置的用户自定义元数据,直接采用Finish请求中指定的元数据。 | No | 
请求元素(Request Elements)
说明: 未使用
响应(Responses)
响应头(Response Headers)
| Name | Type | Description | 
|---|---|---|
| Content-Type | String | 响应body部分的类型 | 
| Content-Length | Integer | 响应body部分的长度 | 
| ETag | String | 已上传文件的哈希值 | 
| X-SessionId | String | 请求失败时返回本次请求的会话Id | 
响应元素(Response Elements)
| Name | Type | Description | 
|---|---|---|
| Bucket | String | 已上传文件所属Bucket的名称 | 
| Key | String | 已上传文件在Bucket中的Key名称 | 
| FileSize | Integer | 已上传文件的大小 | 
说明: 同一文件所有已上传分片的ETag用逗号拼接的字符串,作为请求的 body 数据。
示例
请求示例(Example Request):
POST /demokey?uploadId=0f188eb2-5e19-49c3-94c9-36fb5a0ff72a&newKey=anotherkey HTTP/1.1
Host: <bucket_name>.cn-bj.ufileos.com
Authorization:  demouser@ucloud.cn13424346821929713944:S5FVD2w613MKb/hisjaqHdjvn9U=
Content-Type: text/plain
Content-Length 287 
9EV6kXgrhTfhy65nHAe84vby2po=,bt5wxJ2fYzAIsklPwAeB7Z9LHQI=,Tt_XCL1oic2KI9xD4Gyxa9g_ht0=,DMmtV-wLenWHa5zP0h24ewlvrsc=,UMEvhZgJZsCXV_jIAOXQC60MakI=,1CTgeZYujKyu9ob13800ndWR3f8=,a1_eDguW8oGbDDBbv9Ru3-lJD20=,Q9IVA8bANo4Fmsd2W3e3iiXQrDU=,MiTIX1Mt4wUbpto2-oZ26dovSek=,MuKlR_GmcZuVRx0YEbJZF4_yBvo=响应示例(Example Response):
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 79 
ETag: "AQAAABP9DJdoo2X0hKyax2pVTLQPaVzH"
{
    "Bucket": "demobucket",
    "Key": "anotherkey",
    "FileSize": 41943040
}