Cette page explique comment lister des objets qui ont subi une opération de suppression réversible, mais aussi comment y accéder et comment les restaurer.
Avant de commencer
Pour effectuer les tâches décrites sur cette page, assurez-vous de disposer du rôle IAM "Administrateur de l'espace de stockage" (roles/storage.admin
) sur le bucket ou sur le projet contenant le bucket. Ce rôle prédéfini inclut les autorisations requises pour gérer et restaurer la suppression réversible sur un bucket.
Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
storage.buckets.get
storage.buckets.update
storage.buckets.list
- Cette autorisation est requise si vous prévoyez d'utiliser la console Google Cloud pour exécuter les instructions de cette page.
storage.objects.restore
storage.objects.create
storage.objects.delete
- Cette autorisation est requise si la restauration d'un objet entraîne le remplacement d'un objet existant.
storage.buckets.restore
- Cette autorisation est requise si vous souhaitez restaurer de façon groupée les objets soumis à suppression réversible dans un bucket.
storage.bucketOperations.*
- Cette autorisation est requise pour les opérations de longue durée.
Pour en savoir plus sur l'attribution de rôles dans des buckets, consultez la page Utiliser IAM avec des buckets. Pour savoir comment attribuer des rôles aux projets, consultez la page Gérer l'accès aux projets.
Lister tous les objets soumis à suppression réversible dans un bucket
Vous pouvez lister tous les objets d'un bucket ayant été soumis à une opération de suppression réversible.
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket pour lequel vous souhaitez afficher les objets soumis à suppression réversible. La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.
Dans la liste Afficher, sélectionnez Objets supprimés de façon réversible uniquement. Une liste des objets soumis à suppression réversible s'affiche.
Ligne de commande
Pour afficher la liste de tous les objets soumis à suppression réversible dans un bucket, exécutez la commande gcloud storage ls
avec les options --soft-deleted
et --recursive
:
gcloud storage ls gs://BUCKET_NAME --soft-deleted --recursive
Remplacez les éléments suivants :
BUCKET_NAME
: nom du bucket. Exemple :my-bucket
.
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
.Utilisez
cURL
pour appeler l'API JSON avec une requête permettant de répertorier les objets à l'aide du paramètre de requête?softDeleted
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?softDeleted=true"
Où
BUCKET_NAME
est le nom du bucket concerné. Exemple :my-bucket
Afficher toutes les versions supprimées de façon réversible d'un objet
Vous pouvez afficher toutes les versions supprimées de façon réversible d'un objet spécifique de votre bucket.
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket contenant l'objet dont vous souhaitez afficher les versions supprimées de façon réversible. La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.
Cliquez sur l'objet pour lequel vous souhaitez afficher toutes les versions supprimées de façon réversible. La page Détails de l'objet s'affiche.
Cliquez sur l'onglet Historique des versions.
Dans la liste Afficher, sélectionnez Objets supprimés de façon réversible uniquement. La liste de toutes les versions supprimées de façon réversible pour cet objet s'affiche.
Ligne de commande
Pour afficher la liste de toutes les versions supprimées de façon réversible d'un objet au sein d'un bucket, utilisez la commande gcloud storage ls
:
gcloud storage ls gs://BUCKET_NAME/OBJECT_NAME --soft-deleted
Remplacez les éléments suivants :
BUCKET_NAME
: nom du bucket. Exemple :my-bucket
.OBJECT_NAME
: nom de l'objet dont vous souhaitez afficher toutes les versions.
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
.Utilisez
cURL
pour appeler l'API JSON avec une requête permettant de répertorier les objets à l'aide du paramètre de requête?softDeleted
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?softDeleted=true"
Où
BUCKET_NAME
est le nom du bucket concerné. Exemple :my-bucket
Restaurer un objet soumis à suppression réversible
Vous pouvez restaurer une version spécifique d'un objet soumis à suppression réversible dans votre bucket.
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 les objets soumis à suppression réversible que vous souhaitez restaurer. La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.
Dans la liste Afficher, sélectionnez Objets supprimés de façon réversible uniquement.
Accédez à l'objet, qui peut se trouver dans un dossier.
Cliquez sur l'objet soumis à suppression réversible. La page Détails de l'objet s'affiche.
Dans la liste Afficher, sélectionnez Objets supprimés de façon réversible uniquement. Une liste de toutes les versions supprimées de façon réversible de cet objet s'affiche.
Pour restaurer une version supprimée de façon réversible d'un objet, cliquez sur Restaurer en regard de la version souhaitée. Le volet de restauration de version d'objet s'ouvre.
Cliquez sur Confirmer.
Ligne de commande
Pour restaurer une version supprimée de façon réversible d'un objet, utilisez la commande gcloud storage restore
:
gcloud storage restore gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
Remplacez les éléments suivants :
BUCKET_NAME
: nom du bucket. Exemple :my-bucket
.OBJECT_NAME
: nom de l'objet pour lequel vous souhaitez afficher toutes les versions.GENERATION_NUMBER
: numéro de génération de l'objet soumis à suppression réversible que vous souhaitez restaurer. Si vous ne spécifiez pas le numéro de génération, la dernière version est restaurée. Exemple :1560468815691234
Pour découvrir d'autres options permettant de restaurer plusieurs objets de manière groupée, y compris la restauration de toutes les versions d'un objet avec l'option all-versions
, consultez la documentation de référence de gcloud storage restore
.
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-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/restore?generation=GENERATION_NUMBER"
Où :
BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
OBJECT_NAME
correspond au nom de l'objet soumis à suppression réversible que vous souhaitez restaurer. Par exemple,cat.jpeg
.GENERATION_NUMBER
correspond au numéro de génération de l'objet soumis à suppression réversible que vous souhaitez restaurer. Si vous ne spécifiez pas le numéro de génération, la dernière version est restaurée. Exemple :1560468815691234
.
Effectuer une restauration groupée d'objets soumis à suppression réversible dans un bucket
Si vous souhaitez restaurer un grand nombre d'objets ou si vous ne connaissez pas les objets spécifiques que vous souhaitez restaurer, utilisez l'opération de restauration groupée. Notez que les opérations de restauration groupée s'effectuent de manière asynchrone et peuvent, dans certains cas, prendre une heure ou plus.
Une opération de restauration groupée lance une opération de longue durée sur un bucket. Vous pouvez utiliser la Google Cloud CLI pour obtenir et lister les opérations de longue durée, afin d'afficher les détails et l'état de l'opération de restauration groupée lorsqu'elle est en cours.
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, recherchez celui qui contient les objets à restaurer.
Cliquez sur le menu déroulant de bucket (more_vert) associé au bucket, puis sélectionnez Créer un job de restauration.
Le volet Créer job de restauration s'ouvre.
Dans la section Choisir les objets supprimés de façon réversible à restaurer, sélectionnez la période de suppression à partir de laquelle vous souhaitez restaurer les objets.
(Facultatif) Sélectionnez Filter by glob pattern (Filtrer par modèle glob) et saisissez un modèle glob pour ne restaurer que les objets répondant aux critères de modèle glob.
(Facultatif) Activez d'autres comportements de restauration dans la section Options de restauration.
Cliquez sur Créer.
Vous pouvez suivre la progression de votre opération de restauration groupée en cliquant sur le bouton Notifications (notifications) situé dans l'en-tête de la console Google Cloud.
Ligne de commande
Pour utiliser l'opération de restauration groupée afin de restaurer tous les objets d'un bucket, utilisez la commande gcloud storage restore
.
La commande suivante effectue une opération de restauration groupée afin de restaurer de manière asynchrone tous les objets du bucket qui ont été supprimés au cours d'une période donnée :
gcloud storage restore gs://BUCKET_NAME/** \ --async --deleted-after-time=DELETED_AFTER_TIME \ --deleted-before-time=DELETED_BEFORE_TIME
Remplacez les éléments suivants :
BUCKET_NAME
: nom du bucket. Exemple :my-bucket
.DELETED_AFTER_TIME
: argument facultatif permettant de spécifier la restauration des objets supprimés après une certaine date. Exemple :2022-12-01
.DELETED_BEFORE_TIME
: argument facultatif permettant de spécifier la restauration des objets supprimés avant une certaine date. Exemple :2022-12-21
.Si l'opération réussit, la commande renvoie l'ID de l'opération de longue durée associée à l'opération de restauration groupée. Vous pouvez obtenir des détails sur l'opération de longue durée ou bien l'annuler, afin d'interrompre l'opération de restauration groupée avant qu'elle n'arrive à son terme.
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-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/bulkRestore"
Où
BUCKET_NAME
est le nom du bucket concerné. Exemple :my-bucket
Si l'opération réussit, la commande renvoie l'ID de l'opération de longue durée associée à l'opération de restauration groupée. Vous pouvez obtenir des détails sur l'opération de longue durée ou bien l'annuler, afin d'interrompre l'opération de restauration groupée avant qu'elle n'arrive à son terme.
Gérer les opérations de longue durée pour la restauration groupée
Les opérations de longue durée dans la Google Cloud CLI sont identifiées par un nom d'opération, qui est une combinaison du nom du bucket et de l'ID d'opération.
L'exemple suivant montre une opération de longue durée renvoyée par une opération de restauration groupée :
done: false { "kind": "storage@operation", "name": "projects/_/buckets/my-bucket/operations/CiQyODRlMTY0My0wNGExLTQ3MWItOTE2Zi1hZmQ0ZmM4ZDc4MjQQAg", "metadata": { "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsMetadata", "commonMetadata": { "type": "bulk-restore-objects", "createTime": "2023-10-20T21:08:11.289Z", "updateTime": "2023-10-20T21:18:37.583Z", "endTime": "2023-10-20T21:18:37.583Z", "requestedCancellation": false, "progressPercent": -1, }, "allow_overwrite": false, "matchGlobs": ["*"], "succeededCount": "0", "failedCount": "0", "skippedCount": "0", }, "done": true, "response": { "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsResponse" } }
Pour obtenir des informations générales sur la gestion des opérations de longue durée, consultez la documentation sur gcloud storage operations
.
Obtenir les détails d'une opération de longue durée
Exécutez la commande gcloud storage operations describe
:
gcloud storage operations describe projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID
Remplacez les éléments suivants :
BUCKET_NAME
: nom du bucket contenant l'opération de longue durée. Exemple :my-bucket
OPERATION_ID
: ID de l'opération de longue durée renvoyé dans la réponse de l'opération de restauration groupée.
Lister les opérations de longue durée dans un bucket
Exécutez la commande gcloud storage operations list
:
gcloud storage operations list gs://BUCKET_NAME
Remplacez les éléments suivants :
BUCKET_NAME
: nom du bucket contenant les opérations de longue durée. Exemple :my-bucket
Annuler une opération de longue durée
Exécutez la commande gcloud storage operations cancel
:
gcloud storage operations cancel projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID
Remplacez les éléments suivants :
BUCKET_NAME
: nom du bucket contenant l'opération de longue durée. Exemple :my-bucket
OPERATION_ID
: ID de l'opération de longue durée renvoyé dans la réponse de l'opération de restauration groupée.
Gestion des exceptions
Les opérations de longue durée sont renvoyées par des API asynchrones, qui supposent des pratiques de gestion des exceptions différentes de celles des API synchrones. Contrairement aux API synchrones, les API qui renvoient des opérations de longue durée réussissent même si l'opération sous-jacente échoue. Lorsque vous utilisez des API qui renvoient des opérations de longue durée, vous répondez aux codes d'erreur renvoyés dans les réponses de réussite, plutôt que de répondre aux codes d'erreur renvoyés dans les réponses d'échec.
Par exemple, si vous effectuez une requête de restauration groupée portant sur des objets soumis à suppression réversible, elle renvoie un code d'état HTTP positif (200 OK
), même si une erreur se produit au cours de l'opération. Pour vérifier si l'opération de restauration groupée a réussi, interrogez l'état de l'opération de longue durée.
Notez que les API qui renvoient des opérations de longue durée (Get, Create, Cancel) sont synchrones et renvoient des erreurs normales.
Tentatives
Les API asynchrones de suppression réversible sont idempotentes par défaut. Par conséquent, vous pouvez relancer en toute sécurité des appels d'API asynchrones de suppression réversible, sans vous soucier d'avoir potentiellement modifié involontairement des ressources.
Étapes suivantes
- Obtenez davantage d'informations sur la suppression réversible.
- Découvrez comment utiliser la suppression réversible.