バケットの移動と名前変更

このページでは、オブジェクトを転送元バケットから転送先バケットにコピーして、バケットの内容を移動する方法について説明します。

概要

バケットを作成する際、設定したプロパティの一部(バケットの名前とバケットが属するプロジェクトなど)は永続的で、変更できません。ただし、実際にはバケットの移動や名前変更は可能です。

  • 古いバケットにデータがない場合は、バケットを削除し、希望のプロパティを指定して別のバケットを作成します。

  • 古いバケットにデータがある場合は、希望のプロパティを指定して新しいバケットを作成し、古いバケットから新しいバケットにデータをコピーしてから、古いバケットとその内容を削除します。このページの手順では、このプロセスについて説明します。

    • 新しいバケットに古いバケットと同じ名前を付ける場合は、別の名前のバケットにデータを一時的に移動する必要があります。これにより、元のバケットが削除され、バケット名を再利用できるようになります。

必要な権限

コンソール

Trusted Cloud コンソールを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アクセスするバケットが自分で作成していないプロジェクト内に存在する場合は、必要な権限を含むロールをプロジェクト オーナーに付与する必要があります。

特定のアクションに必要な権限の一覧については、 Trusted Cloud コンソールの IAM 権限をご覧ください。

関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。

コマンドライン

コマンドライン ユーティリティを使用してこのガイドを完了するには、適切な IAM 権限が必要です。アクセスするバケットが自分で作成していないプロジェクト内に存在する場合は、必要な権限を含むロールをプロジェクト オーナーに付与する必要があります。

特定の操作に必要な権限の一覧については、gcloud storage コマンドの IAM 権限をご覧ください。

関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。

REST API

JSON API

JSON API を使用してこのガイドを完了するには、適切な IAM 権限が付与されている必要があります。アクセスするバケットが自分で作成していないプロジェクト内に存在する場合は、必要な権限を含むロールをプロジェクト オーナーに付与する必要があります。

特定のアクションに必要な権限の一覧については、JSON メソッドの IAM 権限をご覧ください。

関連するロールのリストについては、Cloud Storage のロールをご覧ください。また、特定の制限された権限を持つカスタムロールを作成することもできます。

バケット間でデータを移動する

コンソール

  1. 転送先バケットがない場合は、バケットを作成します

  2. 転送元バケットから転送先バケットに各オブジェクトをコピーします。

  3. 転送元バケットとそのコンテンツを削除します。

コマンドライン

  1. まだ作成していない場合は、転送先バケットを作成します

  2. 転送元バケットのコンテンツを転送先バケットに再帰的にコピーするには、--recursive オプションを指定して gcloud storage cp コマンドを使用します。

    gcloud storage cp --recursive gs://SOURCE_BUCKET/* gs://DESTINATION_BUCKET

    ここで

    • SOURCE_BUCKET は、元のバケットの名前です。例: old-bucket

    • DESTINATION_BUCKET は、データ移動先のバケットの名前です。例: my-bucket

    バケットでマネージド フォルダフラットな名前空間を使用している場合、マネージド フォルダをコピーするには、コマンドに --include-managed-folders フラグを含める必要があります。

  3. 転送元バケットのコンテンツと転送元バケット自体を再帰的に削除するには、--recursive オプションを指定して gcloud storage rm コマンドを使用します。

    gcloud storage rm --recursive gs://SOURCE_BUCKET

    ここで、SOURCE_BUCKET は元のバケットの名前です。例: old-bucket

    転送元バケット自体を削除せずに、転送元バケットからコンテンツを削除するには、--all-versions フラグと ** ワイルドカードを指定して gcloud storage rm コマンドを使用します。

    gcloud storage rm --all-versions gs://SOURCE_BUCKET/**

    ここで、SOURCE_BUCKET は元のバケットの名前です。例: old-bucket

REST API

JSON API

  1. 転送先バケットがない場合は、バケットを作成します

  2. 転送元バケットから転送先バケットに各オブジェクトをコピーします。

  3. 転送元バケット内の各オブジェクトを削除します。

  4. 転送元バケットを削除します。

XML API

  1. 転送先バケットがない場合は、バケットを作成します

  2. 転送元バケットから転送先バケットに各オブジェクトをコピーします。

  3. 転送元バケット内の各オブジェクトを削除します。

  4. 転送元バケットを削除します。

次のステップ