Utiliser des objets soumis à suppression réversible

Présentation Configuration

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 obtenir les autorisations nécessaires pour lister, accéder et restaurer des objets supprimés de manière réversible, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de l'espace de stockage (roles/storage.admin) sur le bucket, le dossier géré ou le projet.

Ce rôle prédéfini contient les autorisations requises pour lister, accéder et restaurer des objets supprimés de manière réversible. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour lister des objets qui ont subi une opération de suppression réversible, mais aussi pour y accéder et pour les restaurer :

  • storage.buckets.get
  • storage.buckets.update
  • storage.buckets.list (cette autorisation n'est requise que pour exécuter les instructions de cette page à l'aide de la console Google Cloud)
  • storage.objects.restore
  • storage.objects.create
  • storage.objects.delete (cette autorisation n'est requise que pour restaurer des objets de manière à écraser les objets existants)
  • storage.buckets.restore (cette autorisation n'est requise que pour la restauration groupée d'objets supprimés de manière réversible)

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.

Pour gérer les opérations de longue durée lancées à partir de méthodes de suppression temporaire, vous aurez peut-être besoin de rôles et d'autorisations supplémentaires. Pour en savoir plus, consultez la section Rôles requis pour les opérations de longue durée.

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

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. 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é.

  3. 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

  1. 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.

  2. 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"

    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

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. 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é.

  3. 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.

  4. Cliquez sur l'onglet Historique des versions.

  5. 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

  1. 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.

  2. 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?matchGlob=OBJECT_NAME&softDeleted=true"

    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.

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

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. 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é.

  3. Dans la liste Afficher, sélectionnez Objets supprimés de façon réversible uniquement.

  4. Accédez à l'objet, qui peut se trouver dans un dossier.

  5. Cliquez sur l'objet soumis à suppression réversible. La page Détails de l'objet s'affiche.

  6. 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.

  7. 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.

  8. 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. Exemple : 1560468815691234. Si vous ne spécifiez pas le numéro de génération, la dernière version est restaurée.

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

  1. 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.

  2. Exécutez la commande cURL pour appeler l'API JSON avec une requête POST 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. 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

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, recherchez celui qui contient les objets à restaurer.

  3. Cliquez sur le menu déroulant de bucket () associé au bucket, puis sélectionnez Créer un job de restauration.

    Le volet Créer job de restauration s'ouvre.

  4. 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.

  5. (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.

  6. (Facultatif) Activez d'autres comportements de restauration dans la section Options de restauration.

  7. Cliquez sur Créer.

Vous pouvez suivre la progression de votre opération de restauration groupée en cliquant sur le bouton 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. Pour en savoir plus, consultez Utiliser des opérations de longue durée.

API REST

API JSON

  1. 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.

  2. Exécutez la commande cURL pour appeler l'API JSON avec une requête POST 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"

    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. Pour en savoir plus, consultez Utiliser des opérations de longue durée.

Utiliser les opérations de longue durée pour la restauration groupée

L'opération de restauration groupée lance une opération de longue durée. Vous pouvez obtenir et lister les opérations de longue durée afin d'afficher les détails et l'état d'une opération de restauration groupée, ou supprimer une opération de longue durée pour annuler une opération de restauration groupée en cours.

Pour savoir comment utiliser les opérations de longue durée lancées à partir d'opérations dans Cloud Storage, telles que la restauration groupée, consultez la section Utiliser des opérations de longue durée.

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"
  }
}

Étape suivante