オブジェクトのコピー

オブジェクトをコピーするには、新しいバケットとオブジェクト名を範囲とする PUT リクエストを作成し、x-goog-copy-source リクエスト ヘッダーを使ってソース オブジェクトを指定します。オブジェクトそのものをコピーするには、x-goog-metadata-directive ヘッダーに値 REPLACE を指定する必要があります。オブジェクトのコピーには、リクエストでコピーされたオブジェクトのメタデータを指定する必要があります。を使用して Google Cloud Storage とやり取りできます。

転送元と転送先のバケットの場所が異なる場合、コピー リクエストにはネットワークの使用料金がかかります。

条件コピー ヘッダーのいずれかが指定した条件と一致しないと、 412 前提条件 失敗ステータス コードとエラー レスポンスの本文に、 PreconditionFailedの中にCode要素

クエリ文字列パラメータ

通常、このリクエストにはクエリ文字列パラメータは含まれません。

署名付き URL を作成して使用するときに指定するパラメータについては、署名付き URL クエリ文字列パラメータをご覧ください。

リクエスト ヘッダー

一般的なリクエスト ヘッダーに加えて、次のヘッダーを使用できます。

ヘッダー 説明 必須
Content-Encoding アップロードするオブジェクトの圧縮に使用された圧縮アルゴリズム。 ×
Content-Disposition オブジェクトに対して設定できる、オブジェクト データの転送方法に関する表示情報を指定するヘッダー。 ×
x-goog-acl オブジェクトに適用する定義済みの ACL。acl クエリ文字列パラメータを使用して ACL を適用する場合は使用しないでください。 ×
x-goog-custom-time ユーザーが指定した日時。 ×
x-goog-metadata-directive コピー操作時のメタデータの処理についての指示。COPY または REPLACE のいずれかです。デフォルト値は 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 コピーしたオブジェクトの暗号化に使用する顧客管理の暗号鍵 ×

顧客指定の暗号鍵で暗号化されたオブジェクトをコピーするには、リクエストの暗号化ページに表示されるヘッダーを使用します。

リクエストの本文の要素

このリクエストの本文に XML ドキュメントは含まれません。

リクエストの構文

次の構文は、x-goog- copy-source リクエスト ヘッダーおよび関連する条件コピー リクエスト ヘッダーを使用する PUT Object リクエストに適用されます。

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。
LastModified 現在のコピー操作より前の最後にソース オブジェクトが変更された日時。

次の例では、x-goog-copy-source リクエスト ヘッダーを使用して、travel-maps という名前のバケットから city-maps という名前のバケットに paris.jpg という名前のオブジェクトをコピーします。

リクエスト

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>