功能描述
Upload Part 接口请求实现将对象按照分块的方式上传到 COS。最多支持10000分块,每个分块大小为1MB - 5GB,最后一个分块可以小于1MB。
分块上传步骤说明
分块上传首先需要进行初始化,使用 Initiate Multipart Upload 接口实现,初始化后将得到一个 UploadId(用于唯一标识本次上传)。
在每次请求 Upload Part 时,需要携带 partNumber(块的编号) 和 uploadId,支持乱序上传。
注意:
如果传入 uploadId 和 partNumber 都相同时,后发起上传请求的块将覆盖之前已传入的块。如果分块上传的对象刚好为低频存储/低频存储(多 AZ)、归档存储或者深度归档存储类型的对象,则覆盖操作将会产生提前删除费用,详情请参见 关于提前删除的说明。
如果传入的 uploadId 不存在,将返回404错误 NoSuchUpload。
只有主账号或者被授权 Upload Part 接口权限的子账号可以调用该接口。
授权说明
请求
请求示例
PUT /<ObjectKey>?partNumber=PartNumber&uploadId=UploadId HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-Type: Content TypeContent-Length: Content LengthContent-MD5: MD5Authorization: Auth String[Object Part]
说明:
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,可参阅 存储桶概览 > 基本信息 和 存储桶概述 > 存储桶命名规范 文档;<Region> 为 COS 的可用地域,可参阅 地域和访问域名 文档。
Authorization: Auth String(详情请参见 请求签名 文档)。
请求参数
名称 | 描述 | 类型 | 是否必选 |
ObjectKey | string | 是 | |
partNumber | 标识本次分块上传的编号,范围在1 - 10000 | integer | 是 |
uploadId | 标识本次分块上传的 ID,使用 Initiate Multipart Upload 接口初始化分块上传时得到的 UploadId | string | 是 |
请求头
名称 | 描述 | 类型 | 是否必选 |
x-cos-traffic-limit | 针对本分块上传进行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 - 838860800,即800Kb/s-800Mb/s,如果超出该范围将返回400错误 | integer | 否 |
x-cos-psize-max | 限定上传分块大小最大值,单位 Byte。分块大小大于该值会被判为上传失败。 说明: | Integer | 否 |
x-cos-psize-min | 限定上传分块大小最小值,单位 Byte。分块大小小于该值会被判为上传失败。 说明: | Integer | 否 |
服务端加密(SSE)相关头部
如果当前分块上传在初始化时使用了 SSE-C,那么在上传分块时需指定与初始化分块上传时所指定的加密算法和密钥信息,否则不能指定下列头部。
名称 | 描述 | 类型 | 是否必选 |
x-cos-server-side-encryption-customer-algorithm | 服务端加密算法,目前仅支持 AES256 | string | 是 |
x-cos-server-side-encryption-customer-key | 服务端加密密钥的 Base64 编码 例如 MDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUY= | string | 是 |
x-cos-server-side-encryption-customer-key-MD5 | 服务端加密密钥的 MD5 哈希值,使用 Base64 编码 例如 U5L61r7jcwdNvT7frmUG8g== | string | 是 |
请求体
此接口请求的请求体为对象(文件)分块内容。
响应
响应头
服务端加密(SSE)相关头部
响应体
此接口响应体为空。
错误码
实际案例
案例一:简单案例
请求
PUT /exampleobject?partNumber=1&uploadId=1585130821cbb7df1d11846c073ad648e8f33b087cec2381df437acdc833cf654b9ecc6361 HTTP/1.1Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.comDate: Wed, 25 Mar 2020 10:07:14 GMTContent-Type: application/octet-streamContent-Length: 1048576Content-MD5: OScKloo1fSQgfpkRFiUH6w==Authorization: q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1585130834;1585138034&q-key-time=1585130834;1585138034&q-header-list=content-length;content-md5;content-type;date;host&q-url-param-list=partnumber;uploadid&q-signature=****************************************Connection: close[Object Part]
响应
HTTP/1.1 200 OKContent-Length: 0Connection: closeDate: Wed, 25 Mar 2020 10:07:14 GMTETag: "39270a968a357d24207e9911162507eb"Server: tencent-cosx-cos-hash-crc64ecma: 9973912126177188060x-cos-request-id: NWU3YjJkNTJfZDBjODJhMDlfMjU4NTZfMjc5MzBh****
案例二:使用服务端加密 SSE-COS
请求
PUT /exampleobject?partNumber=1&uploadId=1590862540251355295a5c736513d70d42b92bbde4f0fafb5e0ecb314b55aa0018cc9fa76f HTTP/1.1Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.comDate: Sat, 30 May 2020 18:15:50 GMTContent-Type: application/octet-streamContent-Length: 13Content-MD5: EI9SjrY7Zec08nrjMfX/qg==Authorization: q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1590862550;1590869750&q-key-time=1590862550;1590869750&q-header-list=content-length;content-md5;content-type;date;host&q-url-param-list=partnumber;uploadid&q-signature=****************************************Connection: close[Object Part]
响应
HTTP/1.1 200 OKContent-Length: 0Connection: closeDate: Sat, 30 May 2020 18:15:51 GMTETag: "108f528eb63b65e734f27ae331f5ffaa"Server: tencent-cosx-cos-hash-crc64ecma: 4510578591875220731x-cos-request-id: NWVkMmEyZDZfYjNjMjJhMDlfMmJlM18zOWI2****x-cos-server-side-encryption: AES256
案例三:使用服务端加密 SSE-KMS
请求
PUT /exampleobject?partNumber=1&uploadId=15908625793957d71176fa878282d266a95b79dc2aec159b4a73d1d79c80d4f931cda6ad65 HTTP/1.1Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.comDate: Sat, 30 May 2020 18:16:29 GMTContent-Type: application/octet-streamContent-Length: 13Content-MD5: EI9SjrY7Zec08nrjMfX/qg==Authorization: q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1590862589;1590869789&q-key-time=1590862589;1590869789&q-header-list=content-length;content-md5;content-type;date;host&q-url-param-list=partnumber;uploadid&q-signature=****************************************Connection: close[Object Part]
响应
HTTP/1.1 200 OKContent-Length: 0Connection: closeDate: Sat, 30 May 2020 18:16:30 GMTETag: "1d3e8ae9da423b440341b09f1616f074"Server: tencent-cosx-cos-hash-crc64ecma: 4510578591875220731x-cos-request-id: NWVkMmEyZmRfYTRiOTJhMDlfMTE0ZGRfMmE3OTk4****x-cos-server-side-encryption: cos/kmsx-cos-server-side-encryption-cos-kms-key-id: 48ba38aa-26c5-11ea-855c-52540085****
案例四:使用服务端加密 SSE-C
请求
PUT /exampleobject?partNumber=1&uploadId=1590862610acd643927bad05cd3947bf98b56b04b0b0b2a45a49969f87cc95b7fd5fcc065a HTTP/1.1Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.comDate: Sat, 30 May 2020 18:17:01 GMTx-cos-server-side-encryption-customer-algorithm: AES256x-cos-server-side-encryption-customer-key: MDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUY=x-cos-server-side-encryption-customer-key-MD5: U5L61r7jcwdNvT7frmUG8g==Content-Type: application/octet-streamContent-Length: 13Content-MD5: EI9SjrY7Zec08nrjMfX/qg==Authorization: q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1590862621;1590869821&q-key-time=1590862621;1590869821&q-header-list=content-length;content-md5;content-type;date;host;x-cos-server-side-encryption-customer-algorithm;x-cos-server-side-encryption-customer-key;x-cos-server-side-encryption-customer-key-md5&q-url-param-list=partnumber;uploadid&q-signature=****************************************Connection: close[Object Part]
响应
HTTP/1.1 200 OKContent-Length: 0Connection: closeDate: Sat, 30 May 2020 18:17:01 GMTETag: "ff14981a35a58eb97bca838b055c573b"Server: tencent-cosx-cos-hash-crc64ecma: 4510578591875220731x-cos-request-id: NWVkMmEzMWRfYjRjOTJhMDlfYWRhXzFhZmYw****x-cos-server-side-encryption-customer-algorithm: AES256x-cos-server-side-encryption-customer-key-MD5: U5L61r7jcwdNvT7frmUG8g==