复制对象

要复制对象,您需要发出 PUT 请求(范围限定为新的存储分区和对象名称),并使用 x-goog-copy-source 请求标头指定源对象。如需将对象复制到其自身,您必须使用值为 REPLACEx-goog-metadata-directive 标头,并且必须在请求中为所复制对象指定任何对象元数据。中下载 Google 健身应用。

如果源存储分区和目标存储分区具有不同的位置,则复制请求会产生网络使用费

如果任何条件复制标头均不符合您指定的条件,您会获得412 前提条件 失败状态代码以及错误响应的正文PreconditionFailed包含于Code元素。

查询字符串参数

此请求通常不包含查询字符串参数。

如需了解您在创建和使用签名网址时包含的参数,请参阅签名网址查询字符串参数

请求标头

除了通用请求标头之外,您还可以使用以下内容。

标题 说明 必需
Content-Encoding 压缩算法用于压缩要上传的对象。
Content-Disposition 可以在对象上设置的标头,用于指定有关如何传输对象数据的表示信息。
x-goog-acl 您要应用于对象的预定义 ACL。如果您使用 acl 查询字符串参数来应用 ACL,请勿使用此参数。
x-goog-custom-time 用户指定的日期和时间。
x-goog-metadata-directive 有关在复制操作期间处理元数据的说明。可以是 COPYREPLACE。默认值为 COPY
x-goog-meta- 扩展标头,可用于存储其他字段未提供的其他元数据。
x-goog-copy-source 要复制的对象的存储分区/对象路径。例如 /travel-maps/paris.jpg。
x-goog-copy-source-generation 要复制的对象的世代编号
x-goog-copy-source-if-match ETag。如果您指定的 ETag 与源对象的 ETag 匹配,则会复制源对象。
x-goog-copy-source-if-none-match ETag。如果您指定的 ETag 与源对象的 ETag 不匹配,则复制对象。
x-goog-copy-source-if-modified-since 日期和时间。如果您指定的日期和时间早于源对象的 Last-Modified 日期,则系统会复制对象。
x-goog-copy-source-if-unmodified-since 日期和时间。如果您指定的日期和时间晚于源对象的 Last-Modified 日期,则系统会复制该对象。
x-goog-encryption-kms-key-name 用于加密复制对象的客户管理的加密密钥

要复制由 CSEK(客户提供的加密密钥)加密的对象,请使用您的请求中的“加密”页面上列出的标头

请求正文元素

此请求不包含 XML 文档。

请求语法

以下语法适用于使用 x-goog- copy-source 请求标头和相关条件复制请求标头的 PUT 对象请求。

PUT /OBJECT_NAME HTTP/1.1
Host: BUCKET_NAME.storage.googleapis.com
Date: DATE
Content-Length: REQUEST_BODY_LENGTH
Content-Type: MIME_TYPE
Authorization: AUTHENTICATION_STRING
x-goog-copy-source: /BUCKET_NAME/OBJECT_NAME
x-goog-copy-source-if-match: ETAG
x-goog-copy-source-if-none-match: ETAG
x-goog-copy-source-if-unmodified-since: DATE
x-goog-copy-source-if-modified-since: DATE
x-goog-metadata-directive: COPY | REPLACE

响应标头

请求可以返回各种响应标头,具体取决于您使用的请求标头。

响应正文元素

当您使用 x-goog-copy- source 请求标头或任何相关的条件复制请求标头时,系统会返回以下响应元素。

元素 说明
CopyObjectResult 用于复制信息的容器。
ETag 新复制对象的 ETag。
上次修改时间 源对象在当前复制操作之前上次修改的日期和时间。

示例

以下示例使用 x-goog-copy-source 请求标头,将名为 paris.jpg 的对象从名为 travel-maps 的存储分区复制到名为 city-maps 的存储分区。

请求

PUT /paris.jpg HTTP/1.1
Host: city-maps.storage.googleapis.com
Date: Fri, 23 Jul 2010 21:27:36 GMT
Content-Length: 0
x-goog-copy-source: travel-maps/paris.jpg
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

响应

HTTP/1.1 200 OK
ETag: "9930c6204b2f14e1a4496569dc200186"
Date: Fri, 23 Jul 2010 21:27:37 GMT
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate
Content-Length: 175
Content-Type: text/html

<?xml version='1.0' encoding='UTF-8'?>
<CopyObjectResult>
  <LastModified>2010-06-17T16:18:08.291Z</LastModified>
  <ETag>"9930c6204b2f14e1a4496569dc200186"</ETag>
</CopyObjectResult>