Cette page vous explique comment copier, renommer et déplacer des objets au sein des buckets Cloud Storage et entre eux.
Notez que même si certains outils de Cloud Storage laissent penser que le fait de déplacer ou de renommer un objet est une opération unique, il s'agit en réalité d'une opération de copie suivie d'une opération de suppression de l'objet d'origine, car les objets sont immutable.
Copier un objet
Pour copier un objet dans l'un de vos buckets Cloud Storage, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket qui contient l'objet à copier.
La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.
Accédez à l'objet, qui peut se trouver dans un dossier.
Cliquez sur le menu déroulant (more_vert) associé à l'objet.
Cliquez sur Copier.
Le volet Copier un objet s'affiche.
Dans le champ Destination, saisissez le nom du bucket de destination et le nom de l'objet copié.
Vous pouvez également cliquer sur Parcourir pour sélectionner votre destination, mais les options de navigation sont limitées aux buckets du projet actuel.
Cliquez sur Copier.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Exécutez la commande gcloud storage cp
:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/NAME_OF_COPY
Où :
SOURCE_BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous souhaitez copier. Par exemple,my-bucket
.SOURCE_OBJECT_NAME
correspond au nom de l'objet que vous souhaitez copier. Par exemple,pets/dog.png
.DESTINATION_BUCKET_NAME
correspond au nom du bucket dans lequel vous souhaitez copier votre objet. Exemple :another-bucket
.NAME_OF_COPY
est le nom que vous souhaitez donner à la copie de l'objet. Par exemple,shiba.png
.
Si l'opération réussit, la réponse se présente comme suit :
Copying gs://example-bucket/file.txt to gs://other-bucket/file-copy.txt Completed files 1/1 | 164.3kiB/164.3kiB
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Exécutez la commande
cURL
pour appeler l'API JSON avec une requêtePOST
Object :curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-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"
Où :
SOURCE_BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous souhaitez copier. Par exemple,my-bucket
.SOURCE_OBJECT_NAME
correspond au nom encodé en URL de l'objet que vous souhaitez copier. Par exemple,pets/dog.png
, encodé au format URL :pets%2Fdog.png
.DESTINATION_BUCKET_NAME
correspond au nom du bucket dans lequel vous souhaitez copier votre objet. Par exemple,another-bucket
.NAME_OF_COPY
est le nom encodé en URL que vous souhaitez donner à la copie de l'objet. Par exemple,shiba.png
.
La méthode
rewrite
copiant les données sous forme de fragments de taille limitée, votre copie peut nécessiter plusieurs requêtes, en particulier pour les objets volumineux.Par exemple, la réponse suivante à une requête
rewrite
indique que vous devez effectuer des requêtesrewrite
supplémentaires :{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 1048576, "objectSize": 10000000000, "done": false, "rewriteToken": TOKEN_VALUE }
Utilisez
rewriteToken
dans une requête ultérieure pour continuer à copier des données :curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-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"
Où :
TOKEN_VALUE
correspond à la valeurrewriteToken
renvoyée à l'étape précédente.- Toutes les autres valeurs correspondent à celles utilisées dans la requête précédente.
Lorsque l'objet est entièrement copié, la dernière réponse dispose d'une propriété
done
définie surtrue
, aucune propriétérewriteToken
, et les métadonnées de la copie sont incluses dans leresource
.{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 10000000000, "objectSize": 10000000000, "done": true, "resource": objects Resource }
API XML
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Utilisez
cURL
pour appeler l'API XML avec une requêtePUT
Object :curl -X PUT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-copy-source: SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME" \ "https://storage.googleapis.com/DESTINATION_BUCKET_NAME/NAME_OF_COPY"
Où :
SOURCE_BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous souhaitez copier. Par exemple,my-bucket
.SOURCE_OBJECT_NAME
correspond au nom de l'objet que vous souhaitez copier. Par exemple,pets/dog.png
.DESTINATION_BUCKET_NAME
correspond au nom du bucket dans lequel vous souhaitez copier votre objet. Par exemple,another-bucket
.NAME_OF_COPY
est le nom encodé en URL que vous souhaitez donner à la copie de l'objet. Par exemple,shiba.png
.
Déplacer ou renommer un objet
Pour déplacer un objet dans Cloud Storage entre des buckets ou renommer un objet dans un bucket, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket qui contient l'objet que vous souhaitez déplacer ou renommer.
La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.
Accédez à l'objet, qui peut se trouver dans un dossier.
Cliquez sur le menu déroulant (more_vert) associé à l'objet.
Si vous souhaitez attribuer un nouveau nom à l'objet dans le même bucket, cliquez sur Renommer.
Dans la fenêtre qui apparaît en superposition, saisissez un nouveau nom pour l'objet.
Cliquez sur Renommer.
Si vous souhaitez déplacer l'objet vers un autre bucket, cliquez sur Déplacer.
Dans la fenêtre qui apparaît en superposition, cliquez sur Parcourir.
Sélectionnez la destination de l'objet que vous déplacez.
Cliquez sur Sélectionner.
Cliquez sur Déplacer.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Exécutez la commande gcloud storage mv
:
gcloud storage mv gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME
Où :
SOURCE_BUCKET_NAME
correspond au nom du bucket contenant l'objet que vous souhaitez déplacer ou renommer. Exemple :my-bucket
.SOURCE_OBJECT_NAME
correspond au nom de l'objet que vous souhaitez déplacer ou renommer. Par exemple,pets/dog.png
.DESTINATION_BUCKET_NAME
correspond au nom du bucket stockant votre objet déplacé ou renommé. Exemple :another-bucket
.DESTINATION_OBJECT_NAME
correspond au nom que vous souhaitez attribuer à l'objet après le déplacement ou le changement de nom. Exemple :shiba.png
.
Si l'opération réussit, la réponse se présente comme suit :
Copying gs://example-bucket/old-file.txt to gs://new-bucket/new-file.txt Removing gs://example-bucket/old-file.txt... Completed files 1/1 | 164.3kiB/164.3kiB
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
API REST
API JSON
Pour déplacer ou renommer directement un objet à l'aide de l'API JSON, commencez par créer une copie de l'objet avec les propriétés souhaitées, puis supprimer l'objet d'origine.
API XML
Pour déplacer ou renommer directement un objet à l'aide de l'API XML, commencez par créer une copie de l'objet disposant des propriétés souhaitées, puis supprimez l'objet d'origine.
Nous vous recommandons d'utiliser le service de transfert de stockage pour déplacer plus de 1 To de données entre les buckets.
Étape suivante
- Modifiez la classe de stockage d'un objet.
- Modifiez les métadonnées d'un objet.
- Rendez les objets et les buckets accessibles au public.
- Apprenez-en plus sur les règles de dénomination des objets.
- Découvrez comment utiliser les conditions préalables de requête pour éviter les conditions de concurrence.