初始化一个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
请求元素
名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
partNumber | 正整数 | 是 | 每一个上传的Part都有一个标识它的号码(partNumber)。 取值:1~10000
单个Part的大小限制为100 KB~5 GB。
说明 MultipartUpload事件中除最后一个Part以外,其他Part的大小都要大于或等于100 KB。因不确定是否为最后一个Part,UploadPart接口并不会立即校验上传Part的大小,只有当CompleteMultipartUpload时才会校验。
|
uploadId | 字符串 | 是 | uploadId用于唯一标识上传的Part属于哪个Object。 |
示例
请求示例
PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC98E36 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 qn6qrrqxo2oawuk53otf****:J/lICfXEvPmmSW86bBAfMmUm**** [6291456 bytes data]
返回示例
HTTP/1.1 200 OK Server: AliyunOSS Connection: keep-alive ETag: "7265F4D211B56873A381D321F586****" x-oss-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0**** Date: Wed, 22 Feb 2012 08:32:21 GMT
SDK
错误码
错误码 | HTTP状态码 | 描述 |
---|---|---|
NoSuchUpload | 404 | 分片上传ID不存在。 |
InvalidArgument | 400 | 超出partNumber范围(1~10000)。 |
InvalidDigest | 400 | 为了保证数据在网络传输过程中不出现错误,用户发送请求时可以携带Content-MD5,OSS计算上传数据的MD5与用户上传的MD5值不一致。 |