360
阿里云
UploadPartCopy__关于MultipartUpload的操作_API 参考_对象存储 OSS-阿里云
Upload Part Copy通过从一个已存在的Object中拷贝数据来上传一个Part。通过在Upload Part请求的基础上增加一个Header:x-oss-copy-source来调用该接口。当拷贝一个大于1GB的文件时,必须使用Upload Part Copy的方式进行拷贝。如果想通过单个操作拷贝小于1GB的文件,可以参考Copy Object。
请求语法
PUT /ObjectName? partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Content-Length: Size
Authorization: SignatureValue
x-oss-copy-source: /SourceBucketName/SourceObjectName
x-oss-copy-source-range:bytes=first-last
请求Header
除了通用的请求Header,Upload Part Copy请求中通过下述Header指定拷贝的源Object地址和拷贝的范围。
名称 | 描述 |
---|---|
x-oss-copy-source | 复制源地址(必须有可读权限) 类型:字符串 默认值:无 |
x-oss-copy-source-range | 源Object的拷贝范围。如,设定 bytes=0-9,表示传送第0到第9这10个字符。 当拷贝整个源Object时不需要该请求Header。 类型:整型 默认值:无 |
下述请求Header作用于x-oss-copy-source指定的源Object。
名称 | 描述 |
---|---|
x-oss-copy-source-if-match | 如果源Object的ETAG值和用户提供的ETAG相等,则执行拷贝操作;否则返回412 HTTP错误码(预处理失败)。 类型:字符串 默认值:无 |
x-oss-copy-source-if-none-match | 如果源Object自从用户指定的时间以后就没有被修改过,则执行拷贝操作;否则返回412 HTTP错误码(预处理失败)。 类型:字符串 默认值:无 |
x-oss-copy-source-if-unmodified-since | 如果传入参数中的时间等于或者晚于文件实际修改时间,则正常传输文件,并返回200 OK;否则返回412 precondition failed错误。 类型:字符串 默认值:无 |
x-oss-copy-source-if-modified-since | 如果源Object自从用户指定的时间以后被修改过,则执行拷贝操作;否则返回412 HTTP错误码(预处理失败)。 类型:字符串 默认值:无 |
响应元素(Response Elements)
名称 | 描述 |
---|---|
x-oss-copy-source-if-match | 如果源Object的ETAG值和用户提供的ETAG相等,则执行拷贝操作;否则返回412 HTTP错误码(预处理失败)。 类型:字符串 默认值:无 |
x-oss-copy-source-if-none-match | 如果源Object自从用户指定的时间以后就没有被修改过,则执行拷贝操作;否则返回412 HTTP错误码(预处理失败)。 类型:字符串 默认值:无 |
x-oss-copy-source-if-unmodified-since | 如果传入参数中的时间等于或者晚于文件实际修改时间,则正常传输文件,并返回200 OK;否则返回412 precondition failed错误。 类型:字符串 默认值:无 |
x-oss-copy-source-if-modified-since | 如果源Object自从用户指定的时间以后被修改过,则执行拷贝操作;否则返回412 HTTP错误码(预处理失败)。 类型:字符串 默认值:无 |
细节分析
- 调用该接口上传Part数据前,必须调用Initiate Multipart Upload接口,获取一个OSS服务器颁发的Upload ID。
- Multipart Upload要求除最后一个Part以外,其他的Part大小都要大于100KB。但是Upload Part接口并不会立即校验上传Part的大小(因为不知道是否为最后一块);只有当Complete Multipart Upload的时候才会校验。
- 不指定x-oss-copy-source-range请求头时,表示拷贝整个源Object。当指定该请求头时,则返回消息中会包含整个文件的长度和此次拷贝的范围,例如:Content-Range: bytes 0-9/44,表示整个文件长度为44,此次拷贝的范围为0-9。当指定的范围不符合范围规范时,则拷贝整个文件,并且不在结果中提及Content-Range。
- 若调用Initiate Multipart Upload接口时,指定了x-oss-server-side-encryption请求头,则会对上传的Part进行加密编码,并在Upload Part响应头中返回x-oss-server-side-encryption头,其值表明该Part的服务器端加密算法,具体见Initiate Multipart Upload接口。
- 该操作不能拷贝通过Append追加上传方式产生的object。
示例
请求示例:
PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC98E36 HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Length:6291456
Date: Wed, 22 Feb 2012 08:32:21 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:J/lICfXEvPmmSW86bBAfMmUmWjI=
x-oss-copy-source: /oss-example/ src-object
x-oss-copy-source-range:bytes=100-6291756
返回示例:
HTTP/1.1 200 OK
Server: AliyunOSS
Connection: keep-alive
x-oss-request-id: 3e6aba62-1eae-d246-6118-8ff42cd0c21a
Date: Thu, 17 Jul 2014 06:27:54 GMT'
<?xml version="1.0" encoding="UTF-8"?>
<CopyPartResult xmlns=”https://doc.oss-cn-hangzhou.aliyuncs.com”>
<LastModified>2014-07-17T06:27:54.000Z </LastModified>
<ETag>"5B3C1A2E053D763E1B002CC607C5A0FE"</ETag>
</CopyPartResult>
最后更新:2016-11-23 17:16:08
上一篇:
UploadPart__关于MultipartUpload的操作_API 参考_对象存储 OSS-阿里云
下一篇:
CompleteMultipartUpload__关于MultipartUpload的操作_API 参考_对象存储 OSS-阿里云
VirtualMFADevice__数据类型_RAM API文档_访问控制-阿里云
视频播放__使用手册_视频点播-阿里云
创建作业__SDK接口说明_Python版SDK_批量计算-阿里云
阿里云最新报告:中国SaaS企业将弯道超车
删除编排模板__镜像与模板管理_用户指南_容器服务-阿里云
字符串类型__数据类型_SQL语法参考_云数据库 OceanBase-阿里云
UNIX虚拟主机PHP-Rewrite测试程序__网站访问异常_技术分享_云虚机主机-阿里云
UpdateTable__API 概览_API 参考_表格存储-阿里云
下拉提示操作__JavaSDK手册_SDK参考手册_开放搜索-阿里云
添加转码配置__直播流操作接口_API 手册_CDN-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云