初始化一个MultipartUpload后,调用UploadPart接口根据指定的Object名和uploadId来分块(Part)上传数据。

注意事项

  • 调用UploadPart接口上传Part数据前,必须先调用InitiateMultipartUpload接口来获取OSS服务器生成的uploadId。

  • 如果使用同一个partNumber上传了新的数据,则OSS上已有的partNumber对应的Part数据将被覆盖。

  • OSS会将服务器端收到Part数据的MD5值放在ETag头返回给用户。

  • 如果调用InitiateMultipartUpload接口时,指定了x-oss-server-side-encryption请求头,则会对上传的Part进行加密编码,并在UploadPart响应头中返回x-oss-server-side-encryption头,其值表明该Part的服务器端加密算法。更多信息,请参见InitiateMultipartUpload

请求语法

PUT /ObjectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Content-Length: Size
Authorization: SignatureValue

当您在OSS ON云盒中调用该接口时,您需要将Host替换为云盒Endpoint。更多信息,请参见云盒Endpoint

请求头

此接口仅涉及公共请求头。更多信息,请参见公共请求头(Common Request Headers)

请求元素

名称

类型

是否必选

示例值

描述

partNumber

正整数

1

每一个上传的Part都有一个标识它的号码(partNumber)。

取值:1~10000

单个Part的大小限制为100 KB~5 GB。

说明

MultipartUpload事件中除最后一个Part以外,其他Part的大小都要大于或等于100 KB。因不确定是否为最后一个Part,UploadPart接口并不会立即校验上传Part的大小,只有当CompleteMultipartUpload时才会校验。

uploadId

字符串

0004B9895DBBB6EC9****

uploadId用于唯一标识上传的Part属于哪个Object。

响应头

名称

类型

示例值

描述

Content-MD5

字符串

1B2M2Y8AsgTpgAmY7PhC****

表示Part的MD5值。

重要

Part的MD5值指的是客户端上传完成后获取到的分片MD5,并非响应体的MD5。

x-oss-hash-crc64ecma

字符串

316181249502703****

表示Part的CRC64值。

此接口还涉及其他公共响应头,例如Date、x-oss-request-id等。更多信息,请参见公共响应头(Common Response Headers)

示例

请求示例

PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC9****  HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Length:6291456
Date: Wed, 22 Feb 2012 08:32:21 GMT
Authorization: OSS qn6q**************:77Dv****************
[6291456 bytes data]

返回示例

HTTP/1.1 200 OK
Server: AliyunOSS
Content-length: 0
Connection: keep-alive
ETag: "7265F4D211B56873A381D321F586****"
x-oss-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0****
Date: Wed, 22 Feb 2012 08:32:21 GMT
Content-MD5: 1B2M2Y8AsgTpgAmY7Ph****
x-oss-hash-crc64ecma: 316181249502703****
x-oss-server-time: 77

SDK

此接口所对应的各语言SDK如下:

错误码

错误码

HTTP状态码

描述

NoSuchUpload

404

分片上传ID不存在。

InvalidArgument

400

超出partNumber范围(1~10000)。

InvalidDigest

400

为了保证数据在网络传输过程中不出现错误,用户发送请求时可以携带Content-MD5,OSS计算上传数据的MD5与用户上传的MD5值不一致则表示数据传输出现错误。