文档中心

Upload Part


描述

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

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

块的数量可以是1到10,000中的任意一个(包含1和10,000)。块序号用于标识一个块以及其在对象创建时的位置。如果你上传一个新的块,使用之前已经使用的序列号,那么之前的那个块将会被覆盖。除了最后一个块没有大小限制外,其余的块的大小均要求在5MB以上。当所有块总大小小于5M时,除了最后一个块没有大小限制外,其余的块的大小均要求在100K以上。

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

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

请求

语法

PUT /{ObjectKey}?partNumber={PartNumber}&uploadId={UploadId} HTTP/1.1
Host: {BucketName}.kss.ksyun.com
Date: date
Content-Length: Size
Authorization: authorization string

请求参数

该请求不使用请求参数。

请求头部

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

名称 描述 必须
Content-Length 指明对象的大小,按字节。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html## sec14.13
类型:String
默认值:None
约束条件:无
Content-MD5 base64加密MD5信息,128位,用于对象完整性校验。
类型:String
默认值:None
约束条件:无
Expect 当你使用 100-continue 时,直到收到确认时才会发送请求体。如果头部信息被拒绝,请求体不会被发送
类型:String
默认值:None
有效值:100-continue
约束条件:无

请求内容

该接口不使用请求内容。

响应

响应头部

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

名称 描述
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

响应内容

该接口不使用响应内容。

特殊错误

错误代码 描述 HTTP状态码 SOAP错误代码的前缀
NoSuchUpload 指定的分块上传任务不存在。可能是上传ID无效,也可能是分块上传任务已经完成或放弃。 404 Not Found Client

示例

请求示例

PUT /{ObjectKey}?partNumber={PartNumber}&uploadId={UploadId} HTTP/1.1
Host: {BucketName}.kss.ksyun.com
Date:  Mon, 1 Nov 2010 20:34:56 GMT
Content-Length: 10485760
Content-MD5: pUNXr/BjKK5G2UKvaRRrOA==
Authorization: authorization string

***part data omitted***

响应示例

HTTP/1.1 200 OK
Date:  Mon, 1 Nov 2010 20:34:56 GMT
ETag: "b54357faf0632cce46e942fa68356b38"
Content-Length: 0
Connection: keep-alive
Server: Tengine

接口细节分析

  • UploadId是在初始化分块上传时获取的
  • PartNumber需要是升序连续的数字,且范围在1到10,000之间。否则最后在Complete Multipart Upload时,可能会导致KS3返回错误的状态码。