Initiate Multipart Upload

最近更新时间:2021-04-07 20:14:47

查看PDF

描述

此操作将启动一个分块上传任务并返回 upload ID。在一个确定的分块上传任务中,upload ID用于关联所有分块。连续分块上传请求中的 upload ID由用户指定。在Complete Multipart Upload 和 Abort Multipart Upload请求中同样包含 upload ID。
关于请求签名的问题,分块上传为一系列的请求(初始化分块上传,上传块,完成分块上传,终止分块上传),用户启动任务,发送一个或多个分块,最终完成任务。用户需要对每一个请求单独签名。

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

请求

语法

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-storageClass,则为指定存储类型。
约束条件:无
x-kss-tagging 指定Object的标签,可同时设置多个标签,例如:TagA=A&TagB=B。说明 Key和Value需要先进行URL编码,如果某项没有”=“,则看作Value为空字符串。
ACL 特殊头部

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

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

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

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

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

  • id:被授权者的用户id。
  • uri:被授权的用户组,暂时value仅支持http://acs.ksyun.com/groups/global/AllUsers,表示所有用户(包括匿名用户)
    例如,要给所有用户授予READ权限: x-kss-grant-read:uri=“http://acs.ksyun.com/groups/global/AllUsers

例如,要给id为1234578和3344211的两个用户授予READ权限:
x-kss-grant-read:id=“1234578”,id=“3344211”

请求内容

该接口不使用请求内容。

响应

响应头部

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

名称 描述
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.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://ks3-cn-beijing.ksyun.com/doc/2006-03-01/">
<Bucket>ks3-example</Bucket>
<Key>my-video.rm</Key>
<UploadId>1aa9cfad5e2e405c8f27965feb8b60cc</UploadId>
</InitiateMultipartUploadRes

接口细节分析

  • 初始化分块上传不会对现有的同名文件造成影响,只有在Complete Multipart Upload之后才会覆盖同名文件。
  • 初始化分块上传会在body中返回UploadId,在之后的一些列操作中都会用到。
  • 支持在上传时指定对象tagging,请求者(主账号,子用户,角色)需要具有ks3:PutObjectTagging操作授权。
  • 当访问者具有ks3:PutObject权限,但没有ks3:PutObjectTagging权限时,PutObject仅允许上传不带tagging的对象。

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

  • 内容不全,不深入
  • 内容更新不及时
  • 描述不清晰,比较混乱
  • 系统或功能太复杂,缺乏足够的引导
  • 内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈