このページでは、Cloud Storage のバケット内またはバケット間でオブジェクトをコピー、名前変更、移動する方法について説明します。オブジェクトの概要については、主な用語とオブジェクトの命名要件をご覧ください。
オブジェクトのコピー
いずれかの Cloud Storage バケットのオブジェクトをコピーするには:
Console
- Google Cloud Console で Cloud Storage ブラウザを開きます。
Cloud Storage ブラウザを開く バケットのリストで、コピーするオブジェクトを含むバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト ] タブが選択されています。
フォルダ内にあるオブジェクトに移動します。
オブジェクトに関連付けられた [その他の操作] メニュー(
)をクリックします。
[コピー] をクリックします。
[オブジェクトのコピー] ペインが表示されます。
[移行先] テキスト ボックスに、コピー先バケットの名前と、コピーするオブジェクトの名前を入力します。
[BROWSE] をクリックして保存先を選択することもできますが、ブラウジングの選択肢は現在のプロジェクト内のバケットに制限されます。
[コピー] をクリックします。
Cloud Storage ブラウザで失敗したオペレーションに関する詳細なエラー情報を確認する方法については、トラブルシューティングをご覧ください。
gsutil
gsutil cp
コマンドを使用します。
gsutil cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/NAME_OF_COPY
ここで
SOURCE_BUCKET_NAME
は、コピーするオブジェクトが格納されているバケットの名前です。例:my-bucket
SOURCE_OBJECT_NAME
は、コピーするオブジェクトの名前です。例:pets/dog.png
DESTINATION_BUCKET_NAME
は、オブジェクトのコピー先のバケットの名前です。例:another-bucket
NAME_OF_COPY
は、オブジェクトのコピーに付ける名前です。例:shiba.png
成功した場合は、次の例のようなレスポンスになります。
Operation completed over 1 objects/58.8 KiB.
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/NAME_OF_COPY"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンの名前です。SOURCE_BUCKET_NAME
は、コピーするオブジェクトが格納されているバケットの名前です。例:my-bucket
SOURCE_OBJECT_NAME
は、コピーするオブジェクトの名前です。例:pets/dog.png
DESTINATION_BUCKET_NAME
は、オブジェクトのコピー先のバケットの名前です。例:another-bucket
NAME_OF_COPY
は、オブジェクトのコピーに付ける名前です。例:shiba.png
rewrite
メソッドではサイズ制限されたデータのかたまりをコピーするため、特に大きなオブジェクトについては、コピーで複数のリクエストが必要になる場合があります。たとえば、
rewrite
リクエストに対する次のレスポンスは、追加のrewrite
リクエストが必要であることを示します。{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 1048576, "objectSize": 10000000000, "done": false, "rewriteToken": TOKEN_VALUE }
後続のリクエストで
rewriteToken
を使用して、データのコピーを続行します。curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Length: 0" \ -d '{"rewriteToken": "TOKEN_VALUE"}' \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/NAME_OF_COPY"
ここで
TOKEN_VALUE
は、前のリクエストで返されたrewriteToken
値です。- 他のすべての値は、以前のリクエストで使用された値と一致します。
オブジェクトが完全にコピーされると、最後のレスポンスでは
done
プロパティがtrue
に設定され、rewriteToken
プロパティはなく、コピーのメタデータがresource
プロパティに含まれます。{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 10000000000, "objectSize": 10000000000, "done": true, "resource": objects Resource }
XML API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、PUT
Object リクエストで XML API を呼び出します。curl -X PUT \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "x-goog-copy-source: SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME" \ "https://storage.googleapis.com/DESTINATION_BUCKET_NAME/NAME_OF_COPY"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンの名前です。SOURCE_BUCKET_NAME
は、コピーするオブジェクトが格納されているバケットの名前です。例:my-bucket
SOURCE_OBJECT_NAME
は、コピーするオブジェクトの名前です。例:pets/dog.png
DESTINATION_BUCKET_NAME
は、オブジェクトのコピー先のバケットの名前です。例:another-bucket
NAME_OF_COPY
は、オブジェクトのコピーに付ける名前です。例:shiba.png
オブジェクト名の変更
Cloud Storage バケットにある既存のオブジェクトの名前を変更するには:
Console
- Google Cloud Console で Cloud Storage ブラウザを開きます。
Cloud Storage ブラウザを開く バケットのリストで、名前を変更するオブジェクトを含むバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト ] タブが選択されています。
フォルダ内にあるオブジェクトに移動します。
オブジェクトに関連付けられた [その他の操作] メニュー(
)をクリックします。
[名前を変更] をクリックします。
上に重なったウィンドウで、オブジェクトの新しい名前を入力します。
[名前を変更] をクリックします。
Cloud Storage ブラウザで失敗したオペレーションに関する詳細なエラー情報を確認する方法については、トラブルシューティングをご覧ください。
gsutil
gsutil mv
コマンドを使用します。
gsutil mv gs://BUCKET_NAME/OLD_OBJECT_NAME gs://BUCKET_NAME/NEW_OBJECT_NAME
ここで
BUCKET_NAME
は、名前を変更するオブジェクトが格納されているバケットの名前です。例:my-bucket
OLD_OBJECT_NAME
は、名前を変更するオブジェクトの名前です。例:pets/dog.png
NEW_OBJECT_NAME
は、オブジェクトに付ける新しい名前です。例:pets/shiba.png
成功した場合は、次の例のようなレスポンスになります。
Operation completed over 1 objects/58.8 KiB.
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
JSON API を使用してオブジェクト名を直接変更するには、まず、オブジェクトのコピーを作成します。コピーに新しい名前を付けてから、元のオブジェクトを削除します。
XML API
XML API を使用してオブジェクト名を直接変更するには、まず、オブジェクトのコピーを作成します。コピーに新しい名前を付けてから、元のオブジェクトを削除します。
オブジェクトの移動
Cloud Storage のオブジェクトを移動するには:
Console
- Google Cloud Console で Cloud Storage ブラウザを開きます。
Cloud Storage ブラウザを開く バケットのリストで、移動するオブジェクトを含むバケットの名前をクリックします。
[バケットの詳細] ページが開き、[オブジェクト ] タブが選択されています。
フォルダ内にあるオブジェクトに移動します。
オブジェクトに関連付けられた [その他の操作] メニュー(
)をクリックします。
[移動] をクリックします。
上に重なったウィンドウで [開く] をクリックします。
オブジェクトの移動先を選択します。
[選択] をクリックします。
[移動] をクリックします。
Cloud Storage ブラウザで失敗したオペレーションに関する詳細なエラー情報を確認する方法については、トラブルシューティングをご覧ください。
gsutil
gsutil mv
コマンドを使用します。
gsutil mv gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME
ここで
SOURCE_BUCKET_NAME
は、移動するオブジェクトが格納されているバケットの名前です。例:my-bucket
SOURCE_OBJECT_NAME
は、移動するオブジェクトの名前です。例:pets/dog.png
DESTINATION_BUCKET_NAME
は、オブジェクトの移動先のバケットの名前です。例:another-bucket
DESTINATION_OBJECT_NAME
は、新しい場所でのオブジェクトに付ける名前です。例:shiba.png
成功した場合は、次の例のようなレスポンスになります。
Operation completed over 1 objects/58.8 KiB.
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
JSON API を使用してオブジェクトを直接移動するには、新しい場所にオブジェクトのコピーを作成してから、元のオブジェクトを削除します。
XML API
XML API を使用してオブジェクトを直接移動するには、新しい場所にオブジェクトのコピーを作成してから、元のオブジェクトを削除します。