文档中心 > CopyObject
CopyObject

最近更新时间:2021-12-24

CopyObject接口用于对象的拷贝、元数据修改、存储类型转换。所有复制请求都必须经过验证。此外,您必须对源对象具有读访问权限,而对目标存储区具有写访问权限。

要指定是要从源对象复制对象元数据还是要用请求中提供的元数据替换对象元数据,可以选择添加 x-amz-metadata-directive标头。

您可以使用该CopyObject操作通过参数更改已存储在OSS中的对象的存储类别StorageClass。

默认情况下,x-amz-copy-source标识要复制的对象的当前版本。如果当前版本是删除标记,则OSS的行为就像删除对象一样。要复制其他版本,请使用versionId标记版本。

如果您未启用版本控制或在目标存储桶上多版本处于挂起状态,则OSS生成的版本ID始终为空。


请求

请求语法

PUT /ObjectName HTTP/1.1

Host: Bucket.region.unicloudsrv.com

x-amz-acl: ACL

Cache-Control: CacheControl

Content-Disposition: ContentDisposition

Content-Encoding: ContentEncoding

Content-Language: ContentLanguage

Content-Type: ContentType

x-amz-copy-source: CopySource

x-amz-copy-source-if-match: CopySourceIfMatch

x-amz-copy-source-if-modified-since: CopySourceIfModifiedSince

x-amz-copy-source-if-none-match: CopySourceIfNoneMatch

x-amz-copy-source-if-unmodified-since: CopySourceIfUnmodifiedSince

Expires: Expires

x-amz-storage-class: StorageClass

x-amz-website-redirect-location: WebsiteRedirectLocation

x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm

x-amz-server-side-encryption-customer-key: SSECustomerKey

x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5

x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId

x-amz-server-side-encryption-context: SSEKMSEncryptionContext

x-amz-copy-source-server-side-encryption-customer-algorithm: CopySourceSSECustomerAlgorithm

x-amz-copy-source-server-side-encryption-customer-key: CopySourceSSECustomerKey

x-amz-copy-source-server-side-encryption-customer-key-MD5: CopySourceSSECustomerKeyMD5

请求参数

参数

描述

x-amz-acl

用于目标对象的预定义权限,private或public-read。

Cache-Control

告诉所有的缓存机制是否可以缓存及哪种类型。

Content-Disposition

指定目标对象的表达信息。

Content-Encoding

指定目标对象内容编码格式。

Content-Length

指明目标对象的大小,按字节。

Content-MD5

base64加密MD5信息,128位,用于对象完整性校验。

Content-Type

用于描述文件内容MIME格式。

Expect

当你使用 100-continue 时,直到收到确认时才会发送请求体。如果头部信息被拒绝,请求体不会被发送。

Expires

对象存在于缓存的有效时间日期。

x-amz-copy-source

源存储桶的名称和源对象的键名,以斜杠(/)分隔。必须经过URL编码。为必填字段

x-amz-copy-source-if-match

如果对象的实体标签(ETag)与指定的标签匹配,则复制该对象。

x-amz-copy-source-if-modified-since

如果对象自指定时间以来已被修改,则复制该对象。

x-amz-copy-source-if-none-match

如果对象的实体标签(ETag)与指定的ETag不同,则复制该对象。

x-amz-copy-source-if-unmodified-since

如果自指定时间以来未修改过对象,则复制该对象。

x-amz-storage-class

目标对象的存储类型,默认为STANDARD。支持的值为:STANDARD、STANDARD_IA、GLACIER。

x-amz-website-redirect-location

如果将存储桶配置为网站,则将对此目标对象的请求重定向到同一存储桶中的另一个对象或外部URL。

x-amz-server-side-encryption-customer-algorithm

指定解密源对象时使用的算法(例如AES256)。

x-amz-server-side-encryption-customer-key

客户提供的加密密钥,以用于加密数据。该值用于存储对象,然后丢弃。

x-amz-server-side-encryption-context

指定用于对象加密的KMS加密上下文。

x-amz-copy-source-server-side-encryption-customer-algorithm

指定解密源对象时使用的算法(例如AES256)。

x-amz-copy-source-server-side-encryption-customer-key

客户提供的加密密钥,以用于解密源对象。此标头中提供的加密密钥必须是创建源对象时使用的密钥。

x-amz-copy-source-server-side-encryption-customer-key-MD5

根据RFC 1321指定加密密钥的128位MD5密钥。


示例

请求示例

PUT /my-second-image.jpg HTTP/1.1

Host: bucket.region.unicloudsrv.com

Date: Wed, 28 Oct 2009 22:32:00 GMT

x-amz-copy-source: /bucket/my-image.jpg

Authorization: authorization string

返回示例

HTTP/1.1 200 OK

x-amz-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran

x-amz-request-id: 318BC8BC148832E5

x-amz-copy-source-version-id: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

x-amz-version-id: QUpfdndhfd8438MNFDN93jdnJFkdmqnh893

Date: Wed, 28 Oct 2009 22:32:00 GMT

Connection: close

Server: Caddy


< CopyObjectResult >

    < LastModified >2009-10-28T22:32:00< /LastModified >

    < ETag >"9b2cf535f27731c974343645a3985328"< /ETag >

< CopyObjectResult >