全部文档
当前文档

暂无内容

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

文档中心

Initiate Multipart Upload

最近更新时间:2022-12-30 15:48:03

描述

此操作将启动一个分块上传任务并返回 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
类型: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 设置存储方式。
类型:String
默认值:None
有效值:STANDARD/STANDARD_IA/ARCHIVE
说明:当不指定x-kss-storage-class时,如果Bucket是归档类型,Object自动为归档类型,如果Bucket是非归档类型,Object自动为标准类型;如果指定x-kss-storage-class,则为指定存储类型。
约束条件:无
x-kss-tagging 指定Object的标签,可同时设置多个标签,例如:TagA=A&TagB=B。说明 Key和Value需要先进行URL编码,如果某项没有”=“,则看作Value为空字符串。
ACL 特殊头部

用户可以通过以下的header为Object设置预设的ACL。

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

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

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

以上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 如果存储 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 /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
x-kss-server-side-encryption请求头为空
InvalidArgument 400 缺少任何一个加密请求头
x-kss-server-side-encryption-customer-algorithm为空
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值
文档导读
纯净模式常规模式

纯净模式

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