最近更新时间:2024-03-06 20:40:02
此操作将启动一个分块上传任务并返回 upload ID。在一个确定的分块上传任务中,upload ID用于关联所有分块。连续分块上传请求中的 upload ID由用户指定。在Complete Multipart Upload 和 Abort Multipart Upload请求中同样包含 upload ID。
关于请求签名的问题,分块上传为一系列的请求(初始化分块上传,上传块,完成分块上传,终止分块上传),用户启动任务,发送一个或多个分块,最终完成任务。用户需要对每一个请求单独签名。
注意: 当你启动分块上传后,并开始上传分块,你必须完成或者放弃上传任务,才能终止因为存储造成的收费。
初始化分块上传不会对现有的同名文件造成影响,只有在Complete Multipart Upload之后才会覆盖同名文件。
初始化分块上传会在body中返回UploadId,在之后的一系列操作中都会用到。
支持在上传时指定对象tagging,请求者(主账号,子用户,角色)需要具有ks3:PutObjectTagging操作授权。
当访问者具有ks3:PutObject权限,但没有ks3:PutObjectTagging权限时,PutObject仅允许上传不带tagging的对象。
POST /{ObjectKey}?uploads HTTP/1.1
Host: {BucketName}.{endpoint}
Date: {date}
Authorization: {SignatureValue}
注意:
该请求不使用请求参数。
该接口可以使用所有常用请求头部,此外,也可以使用下表所列请求头部。获取更多信息,请点击常用请求头部。
名称 | 描述 | 是否必选 |
---|---|---|
Cache-Control | 告诉所有的缓存机制是否可以缓存及哪种类型。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html##sec14.9 | 否 |
Content-Disposition | 指定对象的表达信息。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html##sec19.5.1 | 否 |
Content-Encoding | 指定文件内容编码格式。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html##sec14.11 | 否 |
Content-Type | 用于描述文件内容MIME格式。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html##sec14.17 | 否 |
Expires | 对象存在于缓存的有效时间日期。更多信息,请点击http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html##sec14.21 | 否 |
x-kss-meta- | 用户元数据前缀标识。若某个头部前缀为 | 否 |
x-kss-storage-class | 设置存储方式。 | 否 |
x-kss-tagging | 指定Object的标签,可同时设置多个标签,例如:TagA=A&TagB=B。说明 Key和Value需要先进行URL编码,如果某项没有”=“,则看作Value为空字符串。 | 否 |
用户可以通过以下的header为Object设置预设的ACL。
名称 | 描述 | 是否必选 |
---|---|---|
x-kss-acl | 用于对象的预定义权限。 | 否 |
如果用户期望为Object设置详细的ACL,可以通过以下header设置。
名称 | 描述 | 是否必选 |
---|---|---|
x-kss-grant-read | 为若干用户授予READ权限。 | 否 |
x-kss-grant-full-control | 为若干用户授予FULL_CONTROL权限。 | 否 |
以上header值的值为以一个逗号","分割的授权列表。每个授权信息的格式为type=value,当前type支持id:
id:被授权者的用户id。
例如,要给id为1234578和3344211的两个用户授予READ权限:x-kss-grant-read:id=“1234578”,id=“3344211”
若使用KS3 托管密钥的服务器端加密,则需要以下请求头。
名称 | 描述 | 是否必选 |
---|---|---|
x-kss-server-side-encryption | 如果请求中包含此头,服务端将生成加密密钥,并在分块上传时使用该密钥进行加密,合法值:AES256 | 是 |
若使用客户提供的加密密钥的服务器端加密,则需要以下请求头。
名称 | 描述 | 是否必选 |
---|---|---|
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-server-side-encryption | 如果存储 |
x-kss-server-side-encryption-customer-algorithm | 如果服务端使用了用户提供的加密秘钥加密,在请求解密时,响应将会包含该头部来确认使用的解密算法。 |
x-kss-server-side-encryption-customer-key-MD5 | 如果服务端使用了用户提供的加密秘钥加密,在请求解密时,响应将会包含该头部来提供用户提供加密秘钥的数据一致性验证信息。 |
名称 | 描述 |
---|---|
InitiateMultipartUploadResult | 包含响应信息的容器 |
Bucket | 启动分块上传任务的 bucket 的名字 |
Key | 分块上传对象的 key |
UploadId | 分块上传任务的ID |
该请求不返回任何特殊错误。
请求示例
POST /my-video.rm?uploads HTTP/1.1
Host: ks3-example.ks3-cn-beijing.ksyuncs.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
x-kss-request-id: f86omt80heg8bs74dhib1norllhkpjsu
Server: KS3
<?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>ks3-example</Bucket>
<Key>my-video.rm</Key>
<UploadId>1aa9cfad5e2e405c8f27965feb8b60cc</UploadId>
</InitiateMultipartUploadResult>
错误码 | HTTP状态码 | 描述 |
---|---|---|
AlgorithmInvalidForS3 | 400 | * x-kss-server-side-encryption请求头值不是AES256 |
InvalidArgument | 400 | * 缺少任何一个加密请求头 |
AlgorithmInvalidForCustomerKey | 400 | x-kss-server-side-encryption-customer-algorithm不是合法的AES256 |
Md5ErrorForCustomerKey | 400 | x-kss-server-side-encryption-customer-key-MD5 不是 x-kss-server-side-encryption-customer-key 的MD5值 |
纯净模式