全部产品
Search
文档中心

:upload-part-copy

更新时间:Nov 27, 2024

upload-part-copy用于从一个已存在的Object中拷贝数据来上传一个Part。

注意事项

  • 阿里云账号默认拥有设置和获取Object的权限。如果您需要通过RAM用户或者STS的方式进行设置和获取,您必须拥有oss:PutObjectoss:GetObject权限。具体操作,请参见为RAM用户授权自定义的权限策略

  • 当拷贝一个大于1 GB的文件时,必须使用upload-part-copy的方式进行拷贝。如果想通过单个操作拷贝小于1 GB的文件,请参见copy-object

  • 执行upload-part-copy的源Bucket地址和目标Bucket地址必须是同一个Region。

  • 调用该接口上传Part数据前,必须先调用initiate-multipart-upload来获取一个OSS服务器生成的Upload ID。

命令格式

ossutil api upload-part-copy --bucket value --key value --copy-source value --part-number value --upload-id value [flags]

参数

类型

说明

--bucket

string

Bucket名称。

--key

string

Object的完整路径。

--copy-source

string

拷贝源地址(必须有可读权限),其格式为:bucket/UrIEncode(key),需要对源对象名做url encode编码。

--copy-source-if-match

string

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

--copy-source-if-modified-since

string

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

--copy-source-if-none-match

string

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

--copy-source-if-unmodified-since

string

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

--copy-source-range

string

源Object的拷贝范围。

--metadata-directive

string

指定如何设置目标Object的元信息。

--part-number

string

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

--tagging

string

指定Object的标签。

--tagging-directive

string

指定如何设置目标Object的对象标签。

--upload-id

string

MultipartUpload事件的ID。

说明

使用示例

  • 从已存在srcbucket里srcobject的当前版本中拷贝数据来上传一个Part。

    ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1
  • 从已存在srcbucket里srcobject的当前版本中拷贝数据来上传一个Part,以JSON格式显示。

    ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --output-format json
  • 从已存在srcbucket里srcobject的当前版本中拷贝数据来上传一个Part,以YAML格式显示。

    ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --output-format json
  • 从已存在srcbucket里srcobject的当前版本中拷贝数据来上传一个Part,拷贝范围是0-9。

    ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --copy-source-range bytes=0-9
  • 从已存在srcbucket里srcobject的当前版本中拷贝数据来上传一个Part,如果srcObject的ETag 等于 123 则执行拷贝。

    ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --copy-source-if-match 123
  • 从已存在srcbucket里srcobject的当前版本中拷贝数据来上传一个Part,如果srcObject的修改时间早于 Mon, 11 May 2020 08:16:23 GMT 则执行拷贝。

    ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --copy-source-if-unmodified-since "Mon, 11 May 2020 08:16:23 GMT"
  • 从已存在srcbucket里srcobject的当前版本中拷贝数据来上传一个Part,忽略源object的元数据,直接采用请求中指定的元数据。

    ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --metadata-directive REPLACE --metadata user=aliyun --metadata email=ali***@aliyuncs.com
  • 从已存在srcbucket里srcobject的当前版本中拷贝数据来上传一个Part,忽略源Object的对象标签,直接采用请求中指定的对象标签。

    ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --tagging-directive Replace --tagging "TagA=A&TagB=B"
  • 从已存在srcbucket里srcobject的当前版本中拷贝数据来上传一个Part,指定object的访问权限以及存储类型。

    ossutil api upload-part-copy --bucket examplebucket --key exampleobject --copy-source /srcbucket/srcobject --upload-id 123 --part-number 1 --object-acl private --storage-class IA