UploadPartCopy_对象存储_API文档

插件下载了解更多
VS Code 插件
安装插件之前,确保已安装 VS Code安装插件之前,确保已安装 VS Code
Alibaba Cloud Developer Toolkit is a collection of extensions that can help access Alibaba Cloud services in Visual Studio Code.
JetBrains 插件
安装插件之前,确保已安装 JetBrains IDE安装插件之前,确保已安装 JetBrains IDE
The Alibaba Cloud Developer Toolkit for JetBrains makes it easier to access Alibaba Cloud services.

接口说明

该接口为通过在 UploadPart 请求的基础上增加一个请求头 x-oss-copy-source 来调用 UploadPartCopy 接口,实现从一个已存在的 Object 中拷贝数据来上传一个 Part。

注意事项
当拷贝一个大于 1 GB 的文件时,必须使用 UploadPartCopy 的方式进行拷贝。如果想通过单个操作拷贝小于 1 GB 的文件,请参见 CopyObject
使用 UploadPartCopy 接口时,有如下注意事项:

  • 不允许拷贝以 AppendObject 方式上传的 Object。

  • 执行 UploadPartCopy 的源 Bucket 地址和目标 Bucket 地址必须是同一个 Region。

  • 调用该接口上传 Part 数据前,必须先调用 InitiateMultipartUpload 接口来获取一个 OSS 服务器颁发的 Upload ID。

  • 若调用 InitiateMultipartUpload 接口时,指定了 x-oss-server-side-encryption 请求头,则会对上传的 Part 进行加密编码,并在 UploadPart 响应头中返回 x-oss-server-side-encryption 头,其值表明该 Part 的服务器端加密算法,详情请参见 InitiateMultipartUpload

  • MultipartUpload 要求除最后一个 Part 以外,其他的 Part 大小都要大于 100 KB。因不确定是否为最后一个 Part,UploadPart 接口并不会立即校验上传 Part 的大小,只有当 CompleteMultipartUpload 的时候才会校验。

版本控制

UploadPartCopy 默认从一个已存在的 Object 的当前版本中拷贝数据来上传一个 Part。允许通过在请求头 x-oss-copy-source 中附带 versionId 的子条件,实现从 Object 的指定版本进行拷贝,例如 x-oss-copy-source : /SourceBucketName/SourceObjectName?versionId=111111。

说明 SourceObjectName 要进行 URL 编码。响应中将会返回被拷贝 Object 的 versionId:x-oss-copy-source-version-id。

如果未指定 versionId 且拷贝 Object 的当前版本为删除标记(Delete Marker),OSS 将返回 404 Not Found。通过指定 versionId 来拷贝删除标记时,OSS 将返回 400 Bad Request。

流控信息

当前云产品API请求速率暂未透出。

授权信息

如下是此API对应的授权信息,用于RAM权限策略语句的Action元素中,为RAM用户或RAM角色授予调用此API的权限。请通过 RAM 访问控制设置,使用方法可参考访问控制帮助文档

具体说明如下:展开详情

操作访问级别资源类型条件关键字关联操作
oss:PutObject
Create
Object
acs:oss:oss-{#regionId}:{#accountId}:{#BucketName}/{#ObjectName}
acs:UserAgent
acs:AccessId
oss:BucketTag
oss:RequestObjectTag
oss:DataAccessPointArn
oss:x-oss-server-side-encryption-key-id
oss:x-oss-server-side-encryption
oss:x-oss-server-side-data-encryption
oss:x-oss-object-acl
oss:TLSVersion
oss:DataAccessPointAccount
oss:AccessPointNetworkOrigin
oss:GetObject
oss:GetObjectVersion

请求语法

PUT /{key} HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
x-oss-copy-source: string
x-oss-copy-source-range: string
x-oss-copy-source-if-match: string
x-oss-copy-source-if-none-match: string
x-oss-copy-source-if-unmodified-since: string
x-oss-copy-source-if-modified-since: string

路径参数

字段名称字段详情
keystring

Object 完整路径。

示例值:exampledir/exampleobject/txt

请求参数

字段名称字段详情
bucketstring

Bucket 名称。

示例值:examplebucket
x-oss-copy-sourcestring

拷贝源地址(必须有可读权限)。

示例值:/oss-example/ src-object
partNumberinteger<int64>

每一个上传的 Part 都有一个标识它的号码(partNumber)。展开详情

注意 该字段类型为 Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于 9007199254740991。
示例值:10000
uploadIdstring

uploadId 用于唯一标识上传的 Part 属于哪个 Object。

示例值:0004B999EF5A239BB9138C6227D69F95
x-oss-copy-source-rangestring

源 Object 的拷贝范围。例如设置 bytes=0~9,表示拷贝 0 到 9 这 10 个字符。展开详情

示例值:bytes=100-6291756
x-oss-copy-source-if-matchstring

如果源 Object 的 ETAG 值和用户提供的 ETAG 相等,则执行拷贝操作;否则返回 412 HTTP 错误码(预处理失败)。展开详情

示例值:5B3C1A2E053D763E1B002CC607C5****
x-oss-copy-source-if-none-matchstring

如果传入的 ETag 值和 Object 的 ETag 不匹配,则正常传输文件,并返回 200 OK;否则返回 304 Not Modified。展开详情

示例值:5B3C1A2E053D763E1B002CC607C5****
x-oss-copy-source-if-unmodified-sincestring

如果传入参数中的时间等于或者晚于文件实际修改时间,则正常传输文件,并返回 200 OK;否则返回 412 precondition failed 错误。展开详情

示例值:Fri, 13 Oct 2015 14:47:53 GMT
x-oss-copy-source-if-modified-sincestring

如果指定的时间早于实际修改时间,则正常传送文件,并返回 200 OK;否则返回 304 not modified。展开详情

示例值:Fri, 13 Nov 2015 14:47:53 GMT

返回参数

字段名称字段详情
CopyPartResultobject

保存 UploadPartCopy 结果的容器。

返回示例

变更历史

变更时间变更内容概要操作
2024-02-21
变更返回参数

相关示例