此操作将在分块上传任务中上传一个块。
在你上传任一块之前你必须先要启动一个分块上传任务。在你发送一个启动请求后,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