Cette page explique comment configurer la gestion des versions d'objets et propose des exemples d'utilisation.
Configurer la gestion des versions d'objets
Les sections suivantes expliquent comment activer et désactiver la gestion des versions d'objets à l'aide de l'outil gsutil, de l'API JSON et de l'API XML. Cette fonctionnalité ne peut actuellement pas être contrôlée à partir de Google Cloud Console.
Activer la gestion des versions d'objets
Pour activer la gestion des versions d'objets sur un bucket, procédez comme suit :
gsutil
Exécutez la commande gsutil versioning set on
:
gsutil versioning set on gs://BUCKET_NAME
Où BUCKET_NAME
est le nom du bucket concerné. Par exemple, my-bucket
.
Exemples de code
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
API REST
API JSON
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Créez un fichier
.json
contenant les informations suivantes :{ "versioning": { "enabled": true } }
Exécutez
cURL
pour appeler l'API JSON avec une requête de bucketPATCH
:curl -X PATCH --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
Où :
JSON_FILE_NAME
correspond au fichier que vous avez créé à l'étape 2.OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
.
API XML
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Créez un fichier
.xml
contenant les informations suivantes :<VersioningConfiguration> <Status>Enabled</Status> </VersioningConfiguration>
Utilisez
cURL
pour appeler l'API XML avec une requête de bucketPUT
et un paramètre de chaîne de requêteversioning
.curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
Où :
XML_FILE_NAME
correspond au fichier que vous avez créé à l'étape 2.OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
Une fois la gestion des versions d'objets activée, chaque fois qu'une version active est remplacée ou supprimée, elle devient une version obsolète.
Désactiver la gestion des versions d'objets
Pour désactiver la gestion des versions d'objets sur un bucket, procédez comme suit :
gsutil
Exécutez la commande gsutil versioning set off
:
gsutil versioning set off gs://BUCKET_NAME
Où BUCKET_NAME
est le nom du bucket concerné. Par exemple, my-bucket
.
Exemples de code
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
API REST
API JSON
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Créez un fichier
.json
contenant les informations suivantes :{ "versioning": { "enabled": false } }
Exécutez
cURL
pour appeler l'API JSON avec une requête de bucketPATCH
:curl -X PATCH --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
Où :
JSON_FILE_NAME
correspond au fichier que vous avez créé à l'étape 2.OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
.
API XML
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Créez un fichier
.xml
contenant les informations suivantes :<VersioningConfiguration> <Status>Suspended</Status> </VersioningConfiguration>
Utilisez
cURL
pour appeler l'API XML avec une requête de bucketPUT
et un paramètre de chaîne de requêteversioning
.curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
Où :
XML_FILE_NAME
correspond au fichier que vous avez créé à l'étape 2.OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
.
Vérifier si la gestion des versions d'objets est activée
Pour vérifier si la gestion des versions d'objets est activée sur un bucket, procédez comme suit :
gsutil
Exécutez la commande gsutil versioning get
:
gsutil versioning get gs://BUCKET_NAME
Où BUCKET_NAME
est le nom du bucket concerné. Exemple : my-bucket
.
Si la gestion des versions d'objets est activée, vous obtenez une réponse semblable à la suivante :
gs://my-bucket: Enabled
API REST
API JSON
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Exécutez
cURL
pour appeler l'API JSON avec une requête de bucketGET
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
Où :
OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
.
API XML
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Utilisez
cURL
pour appeler l'API XML avec une requête de bucketGET
et un paramètre de chaîne de requêteversioning
.curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
Où :
OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
.
Utiliser des objets avec des versions gérées
Les sections suivantes expliquent comment utiliser des objets avec des versions gérées. Pour obtenir un exemple détaillé d'utilisation de la gestion des versions d'objets, consultez la section Exemple de gestion des versions d'objets.
Répertorier les versions d'objet archivées
Pour répertorier les versions actives et archivées d'un objet, et afficher leurs numéros de génération (generation
), procédez comme suit :
gsutil
Exécutez la commande gsutil ls -a
:
gsutil ls -a gs://BUCKET_NAME
Où BUCKET_NAME
est le nom du bucket concerné. Exemple : my-bucket
.
La réponse est semblable à ceci :
gs://BUCKET_NAME/OBJECT_NAME1#GENERATION_NUMBER1 gs://BUCKET_NAME/OBJECT_NAME2#GENERATION_NUMBER2 gs://BUCKET_NAME/OBJECT_NAME3#GENERATION_NUMBER3 ...
Exemples de code
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
API REST
API JSON
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Exécutez la commande
cURL
pour appeler l'API JSON avec une requêteLIST
Object :curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?versions=true"
Où :
OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
.
Les versions archivées des objets possèdent une propriété timeDeleted
.
API XML
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Utilisez
cURL
pour appeler l'API XML avec une requête de bucketGET
et un paramètre de chaîne de requêteversions
.curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versions"
Où :
OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
.
Les résultats de la requête GET
peuvent être légèrement différents lorsque vous utilisez le paramètre de requête versions
.
Plus précisément, Cloud Storage renvoie les informations suivantes lorsque vous incluez un paramètre versions
dans votre requête :
- Un élément
Version
qui contient des informations sur chaque objet. - Un élément
DeletedTime
qui contient l'heure d'archivage de l'objet (en cas de suppression ou de remplacement). - Un élément IsLatest qui indique si l'objet spécifique constitue la dernière version.
- Un élément
NextGenerationMarker
est renvoyé si la liste d'objets est partielle, ce qui se produit lorsqu'un bucket dispose de nombreuses versions d'objets. Utilisez la valeur de cet élément dans le paramètregenerationmarker
des requêtes ultérieures si vous souhaitez reprendre à partir de votre dernier point. Le paramètre de requêtegenerationmarker
s'utilise de la même manière que le paramètremarker
, qui sert à parcourir une liste associée à un bucket sans versions gérées.
Accéder aux versions d'objet archivées
Pour utiliser la version archivée d'un objet lors de l'exécution de tâches, telles que le téléchargement de l'objet, l'affichage ou la mise à jour de ses métadonnées, procédez comme suit :
gsutil
Ajoutez le numéro de génération (
generation
) de la version archivée au nom de l'objet :OBJECT_NAME#GENERATION_NUMBER
Où :
OBJECT_NAME
correspond au nom de la version archivée. Exemple :pets/dog.png
.GENERATION_NUMBER
correspond au numéro de génération de la version archivée. Exemple :1560468815691234
.
À l'aide de la chaîne de l'étape 1, procédez comme vous le feriez normalement avec la version active de l'objet.
API REST
API JSON
Ajoutez le numéro de génération (
generation
) de la version archivée à la fin de l'URI de l'objet :https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER
Où :
BUCKET_NAME
correspond au nom du bucket contenant la version archivée. Exemple :my-bucket
.OBJECT_NAME
correspond au nom de la version archivée. Exemple :pets/dog.png
.GENERATION_NUMBER
correspond au numéro de génération de la version archivée. Exemple :1560468815691234
.
À l'aide de l'URI de l'étape 1, procédez comme vous le feriez normalement avec la version active de l'objet.
API XML
Ajoutez le numéro de génération (
generation
) de la version archivée à la fin de l'URI de l'objet :https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER
Où :
BUCKET_NAME
correspond au nom du bucket contenant la version archivée. Exemple :my-bucket
.OBJECT_NAME
correspond au nom de la version archivée. Exemple :pets/dog.png
.GENERATION_NUMBER
correspond au numéro de génération de la version archivée. Exemple :1560468815691234
.
À l'aide de l'URI de l'étape 1, procédez comme vous le feriez normalement avec la version active de l'objet.
Copier des versions d'objet archivées
Pour copier une version archivée d'un objet, procédez comme suit :
gsutil
Exécutez la commande gsutil cp
:
gsutil cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME#GENERATION_NUMBER gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME
Où :
SOURCE_BUCKET_NAME
correspond au nom du bucket contenant la version archivée que vous souhaitez copier. Exemple :my-bucket
.SOURCE_OBJECT_NAME
correspond au nom de la version archivée que vous souhaitez copier. Exemple :pets/dog.png
.GENERATION_NUMBER
correspond au numéro de génération de la version archivée que vous souhaitez copier. Exemple :1560468815691234
.DESTINATION_BUCKET_NAME
correspond au nom du bucket dans lequel vous souhaitez copier la version archivée. Exemple :my-bucket
.DESTINATION_OBJECT_NAME
correspond au nom de la copie de la version archivée. Exemple :pets/shiba.png
.
Si l'opération réussit, la réponse se présente comme suit :
Operation completed over 1 objects/58.8 KiB.
Exemples de code
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
API REST
API JSON
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Exécutez la commande
cURL
pour appeler l'API JSON avec une requêtePOST
Object :curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/upload/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/NAME_OF_COPY?sourceGeneration=GENERATION_NUMBER"
Où :
OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.SOURCE_BUCKET_NAME
correspond au nom du bucket contenant la version archivée que vous souhaitez copier. Exemple :my-bucket
.SOURCE_OBJECT_NAME
correspond au nom de la version archivée que vous souhaitez copier. Exemple :pets/dog.png
.DESTINATION_BUCKET_NAME
correspond au nom du bucket dans lequel vous souhaitez copier la version archivée. Exemple :my-bucket
.NAME OF COPY
correspond au nom de la copie de la version archivée. Exemple :pets/shiba.png
.GENERATION_NUMBER
correspond au numéro de génération de la version archivée que vous souhaitez copier. Exemple :1560468815691234
.
API XML
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Exécutez la commande
cURL
pour appeler l'API XML avec une requêtePUT
Object :curl -X PUT \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "x-goog-copy-source: SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME" \ -H "x-goog-copy-source-generation:GENERATION_NUMBER" \ "https://storage.googleapis.com/DESTINATION_BUCKET_NAME/NAME_OF_COPY"
Où :
OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.SOURCE_BUCKET_NAME
correspond au nom du bucket contenant la version archivée que vous souhaitez copier. Exemple :my-bucket
.SOURCE_OBJECT_NAME
correspond au nom de la version archivée que vous souhaitez copier. Exemple :pets/dog.png
.GENERATION_NUMBER
correspond au numéro de génération de la version archivée que vous souhaitez copier. Exemple :1560468815691234
.DESTINATION_BUCKET_NAME
correspond au nom du bucket dans lequel vous souhaitez copier la version archivée. Exemple :my-bucket
.NAME OF COPY
correspond au nom de la copie de la version archivée. Exemple :pets/shiba.png
.
Supprimer des versions d'objet archivées
Pour supprimer une version archivée d'un objet, procédez comme suit :
gsutil
Exécutez la commande gsutil rm
:
gsutil rm gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
Où :
BUCKET_NAME
correspond au nom du bucket contenant la version archivée que vous souhaitez supprimer. Exemple :my-bucket
.OBJECT_NAME
correspond au nom de la version archivée que vous souhaitez supprimer. Exemple :pets/dog.png
.GENERATION_NUMBER
correspond au numéro de génération de la version archivée que vous souhaitez supprimer. Exemple :1560468815691234
.
Si l'opération réussit, la réponse se présente comme suit :
Operation completed over 1 objects.
Exemples de code
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
API REST
API JSON
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Exécutez la commande
cURL
pour appeler l'API JSON avec une requêteDELETE
Object :curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER"
Où :
OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket contenant la version archivée que vous souhaitez supprimer. Exemple :my-bucket
.OBJECT_NAME
correspond au nom de la version archivée que vous souhaitez supprimer. Exemple :pets/dog.png
.GENERATION_NUMBER
correspond au numéro de génération de la version archivée que vous souhaitez supprimer. Exemple :1560468815691234
.
API XML
- Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
Exécutez la commande
cURL
pour appeler l'API XML avec une requêteDELETE
Object :curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER"
Où :
OAUTH2_TOKEN
correspond au jeton d'accès que vous avez généré à l'étape 1.BUCKET_NAME
correspond au nom du bucket contenant la version archivée que vous souhaitez supprimer. Exemple :my-bucket
.OBJECT_NAME
correspond au nom de la version archivée que vous souhaitez supprimer. Exemple :pets/dog.png
.GENERATION_NUMBER
correspond au numéro de génération de la version archivée que vous souhaitez supprimer. Exemple :1560468815691234
.
Étape suivante
- Apprenez-en davantage sur la gestion des versions des objets.
- Découvrez comment utiliser la gestion du cycle de vie des objets pour gérer automatiquement les versions des objets.