文档中心

Initiate Multipart Upload


描述

此操作将启动一个分块上传任务并返回 upload ID。在一个确定的分块上传任务中,upload ID用于关联所有分块。连续分块上传请求中的 upload ID由用户指定。在Complete Multipart UploadAbort Multipart Upload请求中同样包含 upload ID

关于请求签名的问题,分块上传为一系列的请求(初始化分块上传,上传块,完成分块上传,终止分块上传),用户启动任务,发送一个或多个分块,最终完成任务。用户需要对每一个请求单独签名。

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

请求

语法

POST /{ObjectKey}?uploads HTTP/1.1
Host: {BucketName}.kss.ksyun.com
Date: date
Authorization: authorization string

请求参数

该请求不使用请求参数。

请求头部

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

名称 描述 必须
Cache-Control 告诉所有的缓存机制是否可以缓存及哪种类型。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html## sec14.9
类型:String
默认值:None
约束条件:无
Content-Disposition 指定对象的表达信息。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html## sec19.5.1
类型:String
默认值:None
约束条件:无
Content-Encoding 指定文件内容编码格式。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html## sec14.11
类型:String
默认值:None
约束条件:无
Content-Type 用于描述文件内容MIME格式。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html## sec14.17
类型:String
默认值:binary/octet-stream
有效值: MIME types
约束条件:无
Expires 对象存在于缓存的有效时间日期。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html## sec14.21
类型:String
默认值:None
约束条件:无
x-kss-meta- 用户元数据前缀标识。若某个头部前缀为 x-kss-meta-, 则为用户自定义元数据。
类型:String
默认值:None
约束条件:无
x-kss-storage-class 用于设置Object存储方式。
类型:String
默认值:None
有效值:STANDARD
约束条件:无
ACL 特殊头部

使用预设的ACL为即将新上传的Object设置ACL

名称 描述 必须
x-kss-acl 用于对象的预定义权限。
类型:String
默认值:private
有效值:private &##124; public-read
约束条件:无

如果用户期望为Bucket设置详细的ACL,可以通过以下header设置

名称 描述 必须
x-kss-grant-read 为若干用户授予READ权限。
类型:String
默认值:无
约束条件:无
x-kss-grant-full-control 为若干用户授予FULL_CONTROL权限。
类型:String
默认值:无
约束条件:无

以上header值的值为以一个逗号","分割的授权列表。每个授权信息的格式为type=value,当前type支持以下几种:

例如,要给所有用户授予READ权限:

x-kss-grant-read:uri="http://acs.ksyun.com/groups/global/AllUsers"

请求内容

该接口不使用请求内容。

响应

响应头部

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

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

响应内容

名称 描述
InitiateMultipartUploadResult 包含响应信息的容器
类型:Container
子节点:Bucket, Key, UploadId
父节点:无
Bucket 启动分块上传任务的 bucket 的名字
类型:String
父节点:InitiateMultipartUploadResult
Key 分块上传对象的 key
类型:String
父节点:InitiateMultipartUploadResult
UploadId 分块上传任务的ID
类型:String
父节点:InitiateMultipartUploadResult

特殊错误

该请求不返回任何特殊错误。

示例

请求示例

POST /{ObjectKey}?uploads HTTP/1.1
Host: {BucketName}.kss.ksyun.com
Date: Wed, 01 Mar  2006 12:00:00 GMT
Authorization: authorization string

响应示例

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

<?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult xmlns="http://kss.ksyun.com/doc/2006-03-01/">
  <Bucket>bucket</Bucket>
  <Key>example-object</Key>
  <UploadId>1aa9cfad5e2e405c8f27965feb8b60cc</UploadId>
</InitiateMultipartUploadResult>

接口细节分析

  • 初始化分块上传不会对现有的同名文件造成影响,只有在Complete Multipart Upload之后才会覆盖同名文件。
  • 初始化分块上传会在body中返回UploadId,在之后的一些列操作中都会用到。