全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

Upload Part

最近更新时间:2024-03-06 20:40:02

描述

此操作将在分块上传任务中上传一个块(Part)。

注意事项

  • 在你上传任一块之前你必须先要启动一个分块上传任务。在你发送一个启动请求后,KS3会给你一个唯一的 upload ID。每次上传块时,都需要将上传ID包含在请求中。

  • 块的数量可以是1到10,000中的任意一个(包含1和10,000)。块序号用于标识一个块以及其在对象创建时的位置。如果你上传一个新的块,使用之前已经使用的序列号,那么之前的那个块将会被覆盖。

  • 除最后一个块外,其余块的大小均要求大于或等于100KB,单个块的大小不能超过5GB。

  • 因不确定是否为最后一个块,Upload Part接口并不会立即校验上传块的大小,只有当Complete Multipart Upload时才会校验。

  • 为了保证数据在传输过程中没有损坏,请使用 Content-MD5 头部。当使用此头部时,KS3会自动计算出MD5,并根据用户提供的MD5进行校验,如果不匹配,将会返回错误信息。

  • 当你启动分块上传后,并开始上传分块,你必须完成或者放弃上传任务,才能终止因为存储造成的收费。

请求

请求语法

PUT /{ObjectKey}?partNumber={PartNumber}&uploadId={UploadId} HTTP/1.1
Host: {BucketName}.{endpoint}
Date: {date}
Content-Length: {Size}
Authorization: {SignatureValue}

注意:

请求参数

名称

描述

是否必选

partNumber

PartNumber需要是升序连续的数字,且范围在1到10,000之间。否则最后在Complete Multipart Upload时,可能会导致KS3返回错误的状态码。
类型:Integer

uploadId

此次分块上传事件的唯一标识,是在初始化分块上传时获取的。
类型:String

请求头部

该接口可以使用所有常用请求头部。获取更多信息,请点击常用请求头部

名称

描述

是否必选

Content-Length

指明对象的大小,按字节。更多信息,点击查看

  • 类型:String

  • 默认值:None

  • 约束条件:无

Content-MD5

对单个Part(不包括头部)计算MD5值,获得128比特位数字,然后对该数字进行Base64编码,用于对象完整性校验。

  • 类型:String

  • 默认值:None

  • 约束条件:无

x-kss-checksum-crc64ecma

对单个Part(不包括头部)计算CRC64值,用于对象完整性校验。关于CRC64的计算标准,请参见:ECMA-182标准

  • 类型:String

  • 默认值:None.

  • 约束条件:无

Expect

当你使用 100-continue 时,直到收到确认时才会发送请求体。如果头部信息被拒绝,请求体不会被发送。

  • 类型:String

  • 默认值:None

  • 有效值:100-continue

  • 约束条件:无

加密相关请求头

若使用客户提供的加密密钥的服务器端加密,则需要以下请求头。

名称

描述

是否必选

x-kss-server-side-encryption-customer-algorithm

客户端提供的加密算法,合法值:AES256

x-kss-server-side-encryption-customer-key

客户端提供的加密密钥

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

客户端提供的通过BASE64编码的通过128位MD5加密的密钥的MD5值

请求内容

该接口不使用请求内容。

响应

响应头部

该接口可以使用所有常用响应头部。获取更多信息,请点击常用响应头部

名称

描述

x-kss-checksum-crc64ecma

块的CRC64值,用来做数据完整性校验。关于CRC64的计算标准,请参见文档:ECMA-182标准

  • 类型:String

x-kss-server-side-encryption

如果存储Object时使用了服务端加密,则响应会包含该头部,值为使用的加密算法。

  • 类型:String

x-kss-server-side-encryption-customer-algorithm

如果服务端使用了用户提供的加密秘钥加密,在请求解密时,响应将会包含该头部来确认使用的解密算法。

  • 类型:String

  • 有效值:AES256

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

如果服务端使用了用户提供的加密秘钥加密,在请求解密时,响应将会包含该头部来提供用户提供加密秘钥的数据一致性验证信息。

  • 类型:String

响应内容

该接口不使用响应内容。

示例

请求示例

PUT /my-video.rm?partNumber=2&uploadId=1aa9cfad5e2e405c8f27965feb8b60cc HTTP/1.1
Host: ks3-example.ks3-cn-beijing.ksyuncs.com
Date: Mon, 1 Nov 2010 20:34:56 GMT
Content-Length: 10485760
Content-MD5: pUNXr/BjKK5G2UKvaRRrOA==
Authorization: authorization string

响应示例

HTTP/1.1 200 OK
Date: Mon, 1 Nov 2010 20:34:56 GMT
ETag: "b54357faf0632cce46e942fa6835****"
 x-kss-checksum-crc64ecma: 503054087537662****
Content-Length: 0
Connection: keep-alive
x-kss-request-id: f86oitegm4soa875o1ib1nqmlkjv35is
Server: KS3

错误码

错误码

HTTP状态码

描述

InvalidPartNum

400

超出PartNumber取值范围(1~10000)。

InvalidDigest

400

KS3计算的MD5值与用户提供的MD5值不一致。

NoSuchUpload

404

指定的分块上传任务不存在。可能是上传ID无效,也可能是分块上传任务已经完成或放弃。

RequestEntityTooLarge

413

指定上传的文件过大,分块大小不能大于5G。

MissingCustomerKey

400

* 缺少加密请求头
* x-kss-server-side-encryption-customer-algorithm为空

Md5ErrorForCustomerKey

400

* 客户端加密头与Initiate Multipart Upload时的不一致
* x-kss-server-side-encryption-customer-key-MD5不是 x-kss-server-side-encryption-customer-key的MD5值

AlgorithmInvalidForCustomerKey

400

x-kss-server-side-encryption-customer-algorithm不是合法的AES256

InvalidRequest

400t

CRC64值不合法

BadDigest

400

CRC64值合法但错误

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈