Déplacer des données entre des buckets

Cette page explique comment déplacer le contenu d'un bucket en copiant des objets d'un bucket source vers un bucket de destination.

Présentation

Lorsque vous créez un bucket, certaines des propriétés que vous définissez sont permanentes et ne peuvent pas être modifiées, comme le nom du bucket et son projet parent.

Si vous souhaitez utiliser un nouveau nom pour votre bucket, vous pouvez le faire en créant un bucket avec le nom que vous souhaitez utiliser, puis en copiant vos objets de l'ancien bucket vers le nouveau. Vous pouvez ensuite supprimer l'ancien bucket. Veuillez noter les points suivants :

  • Lorsque vous supprimez un bucket, son nom peut être réutilisé.

  • Si votre objectif principal est de déplacer des objets d'un bucket vers un autre pour stocker vos données dans un emplacement de bucket différent, nous vous recommandons de déplacer directement votre bucket.

Autorisations requises

Console

Pour suivre ce guide à l'aide de la consoleCloud de Confiance , vous devez disposer des autorisations IAM appropriées. Si les buckets auxquels vous souhaitez accéder se trouvent dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires.

Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour la console Cloud de Confiance .

Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.

Ligne de commande

Pour suivre ce guide à l'aide d'un utilitaire de ligne de commande, vous devez disposer des autorisations IAM appropriées. Si les buckets auxquels vous souhaitez accéder se trouvent dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires.

Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour les commandes gcloud storage.

Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.

API REST

API JSON

Pour suivre ce guide à l'aide de l'API JSON, vous devez disposer des autorisations IAM appropriées. Si les buckets auxquels vous souhaitez accéder se trouvent dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires.

Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour les méthodes JSON.

Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.

Déplacer des données d'un bucket à un autre

Console

  1. Si vous n'avez pas encore de bucket de destination, créez-le.

  2. Copiez chaque objet de votre bucket source vers le bucket de destination.

  3. Supprimez votre bucket source et son contenu.

Ligne de commande

  1. Si vous n'en avez pas encore, créez un bucket de destination.

  2. Pour copier de manière récursive le contenu de votre bucket source dans votre bucket de destination, exécutez la commande gcloud storage cp avec l'option --recursive :

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

    Où :

    • SOURCE_BUCKET correspond au nom du bucket d'origine. Par exemple, old-bucket.

    • DESTINATION_BUCKET correspond au nom du bucket vers lequel vous transférez vos données. Exemple :my-bucket

    Si votre bucket utilise des dossiers gérés et un espace de noms plat, vous devez inclure l'indicateur --include-managed-folders dans la commande pour que les dossiers gérés soient copiés.

  3. Pour supprimer de manière récursive le contenu du bucket source, ainsi que le bucket source lui-même, exécutez la commande gcloud storage rm avec l'option --recursive :

    gcloud storage rm --recursive gs://SOURCE_BUCKET

    SOURCE_BUCKET correspond au nom du bucket d'origine. Exemple :old-bucket

    Vous pouvez également supprimer le contenu du bucket source sans supprimer le bucket source lui-même. Pour ce faire, exécutez la commande gcloud storage rm avec l'option --all-versions et le caractère générique ** :

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

    SOURCE_BUCKET correspond au nom du bucket d'origine. Par exemple, old-bucket.

API REST

API JSON

  1. Si vous n'avez pas encore de bucket de destination, créez-le.

  2. Copiez chaque objet de votre bucket source vers le bucket de destination.

  3. Supprimez chaque objet de votre bucket source.

  4. Supprimez votre bucket source.

API XML

  1. Si vous n'avez pas encore de bucket de destination, créez-le.

  2. Copiez chaque objet de votre bucket source vers le bucket de destination.

  3. Supprimez chaque objet de votre bucket source.

  4. Supprimez votre bucket source.

Étape suivante