UploadParts
初始化一个Multipart Upload之后,可以根据指定的Object名和Upload ID来分块(Part)上传数据
请求语法
PUT /ObjectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: bucketname.cos.chinac.com
Date: GMT Date
Content-Length: Size
Authorization: SignatureValue
细节分析
- 调用该接口上传Part数据前,必须调用InitiateMultipartUpload接口,获取一个COS服务器颁发的UploadID
- MultipartUpload要求除最后一个Part以外,其他Part的大小最小要大于等于5MB,最后一块Part没有最小限制
- Upload Part接口并不会立即校验上传Part的大小(因为不知道是否为最后一块);只有当Complete Multipart Upload的时候才会校验
- COS会将服务器端收到Part数据的MD5值放在ETag头内返回给用户
- Part号码的范围是1~10000。如果超出这个范围,COS将返回InvalidArgument的错误码
- 如果你用同一个part号码,上传了新的数据,那么COS上已有的这个号码的Part数据将被覆盖
- 对于同一个UploadID,partNumber不但唯一标识这一块数据,也标识了这块数据在整个文件内的相对位置。
- 为了保证数据在网络传输过程中不出现错误,用户发送请求时携带Content-MD5,COS会计算上传数据的MD5与用户上传的MD5值比较,如果不一致返回InvalidDigest错误码
示例
请求示例
PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC98E36 HTTP/1.1
Host: test-bucket.cos.chinac.com
Content-Length:6291456
Date: Wed, 22 Feb 2012 08:32:21 GMT
Authorization: COS qn6qrrqxo2oawuk53otfjbyc:J/lICfXEvPmmSW86bBAfMmUmWjI=
[6291456 bytes data]
返回示例
HTTP/1.1 200 OK
Connection: keep-alive
ETag: 7265F4D211B56873A381D321F586E4A9
x-cos-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0c21a
Date: Wed, 22 Feb 2012 08:32:21 GMT
Server: COS