You need to enable JavaScript to run this app.
导航

UploadPart

最近更新时间2023.11.21 10:22:21

首次发布时间2021.10.13 16:14:08

功能描述

该接口用于上传分片数据,在调用此接口前,需要先通过 CreateMultipartUpload 接口初始化分片,获取分片任务的UploadId。每次上传成功后,返回的ETag为上传分片的ETag。分片任务中的partNumber是唯一的,对同一个partNumber多次上传,最后上传的数据会覆盖原有的。同一个对象的同一个分片任务,支持多个分片同时上传,上传顺序不影响最终的合并分片操作。
除了最后一个分片,其他分片大小需要大于等于 5MB。上传的分片的编号也有范围限制,其范围是 [1, 10000]。

服务端加密

如果您使用服务端加密,TOS在收到您上传的数据时,在文件级别加密这些数据,再将加密的数据持久化存储;您下载文件时,TOS自动将加密数据解密后返回给您。如果选择使用客户提供的加密密钥(SSE-C)进行服务端加密,那么此次请求必须携带与 CreateMultiPartUpload 相同的 SSE-C 加密头域。
TOS 分片上传支持服务端加密功能,除非您使用 SSE-C 加密方式,否则您不需要在每个 UploadPart 请求中携带加密参数,您只需要在最初的 CreateMultiPartUpload 请求中指定服务端加密的参数。更多相关信息,请参见 CreateMultipartUpload
如果您在CreateMultiPartUpload 请求中使用 SSE-C 加密方式,你必须在每个 UploadPart 请求中携带以下头域:

  • x-tos-server-side-encryption-customer-algorithm
  • x-tos-server-side-encryption-customer-key
  • x-tos-server-side-encryption-customer-key-MD5

关于服务端加密的更多详细信息,请参见服务端加密概述

请求消息样式

PUT /objectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com
Date: GMT Date
Authorization: authorization string
Content-Length: length

<part content>

请求参数和消息头

该请求使用的公共请求消息头,请参见公共参数

名称

位置

参数类型

是否必选

示例值

说明

partNumber

Query

Integer

1

上传的分片号,有效取值 [1,10000]。

uploadId

Query

String

f93f6fc9da94371f321e1008

初始化分片任务返回的分片任务 ID,用于唯一标识上传的分片属于哪个对象。

Content-Length

Header

Integer

100

消息体的大小。

Content-MD5

Header

String

XrY7u+Ae7tCTyyK7j1rNww==

消息体的 Base64MD5 摘要。

x-tos-server-side-encryption-customer-algorithm

Header

String

否,使用 SSE-C 加密时,必选。

AES256

指定 SSE-C 加密对象要使用的算法,取值说明如下:

  • AES256:使用 AES256 算法加密对象。

x-tos-server-side-encryption-customer-key

Header

String

否,使用 SSE-C 加密时,必选。

YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE=

x-tos-server-side-encryption-customer-algorithm 配套使用,指定 SSE-C 加密目标对象的密钥,格式为 base64 编码的 256 bit 的加密密钥。

x-tos-server-side-encryption-customer-key-MD5

Header

String

否,使用 SSE-C 加密时,必选。

0gYVWExOAz67jX5A6qY4+A==

与 x-tos-server-side-encryption-customer-key 配套使用,该头域表示加密对象使用的密钥的MD5值。该头域由密钥的 128-bit MD5 值经过 base64-encoded 得到,该值用于消息完整性检查,确认加密密钥在传输过程中没有出错。

x-tos-traffic-limit

Header

String

819200

TOS 提供单链接限速功能,在上传、下载文件等操作中进行流控控制,以保证其他应用的网络带宽。取值说明如下:

  • 取值范围:819200-838860800,单位为 bit/s。
  • Header 和 Query 中不能同时存在此参数。

x-tos-traffic-limit

Query

String

819200

TOS 提供单链接限速功能,在上传、下载文件等操作中进行流控控制,以保证其他应用的网络带宽。取值说明如下:

  • 取值范围:819200-838860800,单位为 bit/s。
  • Header 和 Query 中不能同时存在此参数。

请求元素

该请求中无请求消息元素。

响应消息头

该请求返回的公共响应消息头,请参见公共参数

名称

参数类型

说明

x-tos-server-side-encryption

String

对象是 SSE-TOS 加密或 SSE-KMS 时返回该头域,该头域表示对象的服务端加密方式,取值如下:

  • AES256:使用 SSE-TOS 加密方式。
  • kms:使用 SSE-KMS 加密方式。
    关于 SSE-TOS、 SSE-KMS 加密方式详细说明,请参见服务端加密概述

x-tos-server-side-encryption-kms-key-id

String

对象采用 SSE-KMS 加密方式时返回该头域,该头域表示 SSE-KMS 加密使用的 KMS 主密钥 ID。

x-tos-server-side-encryption-customer-algorithm

String

对象是 SSE-C 加密时返回此头域,确认使用的加密算法。

x-tos-server-side-encryption-customer-key-MD5

String

对象是 SSE-C 加密时返回此头域,该头域表示加密使用的密钥的 MD5 值。

x-tos-hash-crc64ecma

Integer

表示该对象的 64 位 CRC 值。该 64 位 CRC 根据 ECMA-182 标准计算得出。

说明

对 TOS 服务端支持 64 位 CRC 校验前创建的对象,则该消息头不会出现在响应消息中。

响应元素

该请求响应中无消息元素。

请求示例

PUT /objectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com
Date: Fri, 30 Jul 2021 00:09:01 GMT
Authorization: authorization string
Content-Length: 102400

<102400 Byte part content>

响应示例

HTTP/1.1 200 OK
x-tos-id-2: 4fac130c7d9d0036-a444ed0
x-tos-request-id: 4fac130c7d9d0036-a444ed0
x-tos-hash-crc64ecma: 6186290338114851376
Date: Fri, 30 Jul 2021 00:09:01 GMT
server: TosServer
ETag: "ef176a6c424f954fa42d4cde03949897"
Content-Length: 0