Créer et gérer des jobs d'opérations par lot

Cette page explique comment créer, afficher, lister, annuler et supprimer des jobs d' opérations de stockage par lot. Il explique également comment utiliser Cloud Audit Logs avec les jobs d'opérations de stockage par lot.

Avant de commencer

Pour créer et gérer des jobs d'opérations par lot Storage, suivez les étapes décrites dans les sections suivantes.

Configurer Storage Intelligence

Pour créer et gérer des jobs d'opérations Storage par lot, configurez Storage Intelligence sur le bucket dans lequel vous souhaitez exécuter le job.

Activer l'API

Activez l'API Storage Batch Operations.

gcloud services enable storagebatchoperations.googleapis.com

Créer un fichier manifeste

Si vous souhaitez utiliser un fichier manifeste pour la sélection d'objets, créez un fichier manifeste. L'utilisation d'un fichier manifeste est l'une des méthodes permettant de sélectionner les objets à traiter dans un job d'opérations par lot de stockage.

Créer un job d'opérations Storage par lot

Cette section explique comment créer un job d'opérations de stockage par lot.

Pour obtenir les autorisations nécessaires pour créer un job d'opérations par lot Storage, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Storage (roles/storage.admin) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Console

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

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket qui contient les objets sur lesquels vous souhaitez effectuer des opérations par lot.

    La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.

  3. Cliquez sur Créer des opérations par lot.
  4. Dans le volet Sélectionner une opération, choisissez le type d'opération :
    • Gérer les obligations de conservation des objets : sélectionnez Obligation de conservation temporaire ou Obligation de conservation basée sur des événements. Pour en savoir plus, consultez Obligations de conservation d'objets.
    • Mettre à jour les métadonnées d'un objet : pour ajouter des métadonnées d'objet, procédez comme suit :
      • Pour ajouter des métadonnées personnalisées, procédez comme suit :
        1. Dans le champ Clé, saisissez un nom de clé.
        2. Dans le champ Valeur, saisissez une valeur pour cette clé.
        3. Facultatif : Cliquez sur + Ajouter un élément pour ajouter d'autres paires clé-valeur.
      • Pour mettre à jour les métadonnées à clé fixe, procédez comme suit :
        1. Pour développer la section Mettre à jour les métadonnées à clés fixes, cliquez sur la flèche de développement .
        2. Dans la liste Sélectionnez une ou plusieurs métadonnées à mettre à jour, sélectionnez les éléments de métadonnées à modifier.
    • Mettre à jour/Effectuer la rotation de la clé de chiffrement : pour utiliser ou modifier la clé de chiffrement des objets, procédez comme suit :
      1. Dans la liste Sélectionner une clé Cloud KMS, sélectionnez une clé de chiffrement gérée par le client (CMEK).
      2. Facultatif : Sélectionnez Changer de projet pour choisir une clé dans un autre projet ou sélectionnez Saisir la clé manuellement pour saisir les détails.
    • Supprimer des objets : pour supprimer des objets, procédez comme suit :
      1. Vérifiez si la gestion des versions d'objets est activée.
      2. Si la gestion des versions d'objets est activée, choisissez l'une des options de suppression suivantes :

        • Sélectionnez Supprimer toutes les versions des objets pour supprimer les versions actives et obsolètes.
        • Sélectionnez Supprimer définitivement les versions en ligne pour supprimer uniquement la version en ligne.

        Si la gestion des versions d'objets n'est pas activée, tous les objets sélectionnés pour suppression sont définitivement supprimés.

  5. Cliquez sur Suivant.
  6. Dans le volet Nommer l'opération et spécifier les objets, procédez comme suit :
    1. Dans le champ Nom, saisissez un nom.
    2. Facultatif : Dans le champ Description, saisissez une description.
    3. Dans la section Spécifier les objets, définissez un critère pour traiter les objets du bucket. Choisissez l'une des options suivantes :
      • Sélectionner tous les objets : inclut tous les objets du bucket.
      • Sélectionner des objets à l'aide de filtres de préfixe : pour définir la liste des objets à l'aide de filtres de préfixe, procédez comme suit :
        1. Dans le champ Saisissez les préfixes des objets à inclure, saisissez un préfixe.
        2. Facultatif : Cliquez sur + Ajouter un préfixe pour spécifier d'autres préfixes.
      • Importer des listes d'objets à l'aide de fichiers manifestes CSV : pour utiliser un fichier manifeste pour sélectionner des objets, procédez comme suit :

        1. Importez votre fichier manifeste CSV dans un bucket. Ce fichier doit contenir des en-têtes pour Nom du bucket, Clé d'objet et Numéro de génération.
        2. Dans la liste Sélectionner le mode de fichier manifeste, choisissez l'une des options suivantes :
          • Si vous sélectionnez Sélectionner un fichier manifeste dans Cloud Storage, cliquez sur Parcourir dans le champ Sélectionner un fichier manifeste dans Cloud Storage. Dans la boîte de dialogue Sélectionner un objet qui s'affiche, accédez à votre fichier CSV de fichier manifeste, puis cliquez sur Sélectionner.
          • Si vous sélectionnez Sélectionner plusieurs fichiers manifestes à l'aide d'un caractère générique, saisissez le chemin d'accès au fichier dans le champ Saisissez l'emplacement du fichier manifeste à l'aide d'un caractère générique. Par exemple, bucket-name/folder/manifest_*.
  7. Cliquez sur Créer.

Ligne de commande

  1. Dans la console Google Cloud , activez Cloud Shell.

    Activer Cloud Shell

    En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Utilisez la Google Cloud CLI version 516.0.0 ou ultérieure.

  3. Pour définir le projet par défaut, exécutez la commande gcloud config set project :

    gcloud config set project PROJECT_ID

    PROJECT_ID correspond à l'ID de votre projet.

  4. Facultatif : Exécutez une tâche de simulation. Avant d'exécuter un job, nous vous recommandons de l'exécuter en mode de simulation pour vérifier les critères de sélection des objets et rechercher les éventuelles erreurs. L'exécution à blanc ne modifie aucun objet.

    Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs create avec l'option --dry-run :

    gcloud storage batch-operations jobs create DRY_RUN_JOB_NAME \
    --bucket=BUCKET_NAME OBJECT_SELECTION_FLAG JOB_TYPE_FLAG \
    --dry-run

    L'exécution à blanc utilise les mêmes paramètres que le job réel. Pour en savoir plus, consultez les descriptions des paramètres.

    Pour afficher les résultats du dry run, consultez Obtenir des informations sur un job d'opérations Storage par lot.

  5. Une fois la simulation réussie, exécutez la commande gcloud storage batch-operations jobs create.

    gcloud storage batch-operations jobs create JOB_NAME\
    --bucket=BUCKET_NAME OBJECT_SELECTION_FLAG JOB_TYPE_FLAG

    Les paramètres sont les suivants :

    • DRY_RUN_JOB_NAME est le nom du job de simulation d'opérations de stockage par lot.
    • JOB_NAME est le nom du job d'opérations Storage par lot.

    • BUCKET_NAME correspond au nom du bucket contenant un ou plusieurs objets que vous souhaitez traiter.

    • OBJECT_SELECTION_FLAG correspond à l'un des indicateurs suivants que vous devez spécifier :

      • --included-object-prefixes : spécifiez un ou plusieurs préfixes d'objet. Exemple :

        • Pour ne faire correspondre qu'un préfixe, utilisez : --included-object-prefixes='prefix1'.
        • Pour faire correspondre plusieurs préfixes, utilisez une liste de préfixes séparés par une virgule : --included-object-prefixes='prefix1,prefix2'.
        • Pour inclure tous les objets, utilisez un préfixe vide : --included-object-prefixes=''.
      • --manifest-location : spécifiez l'emplacement du fichier manifeste. Par exemple, gs://bucket_name/path/object_name.csv.

    • JOB_TYPE_FLAG correspond à l'un des flags suivants que vous devez spécifier, en fonction du type de job.

      • --delete-object : supprime un ou plusieurs objets.

        • Si la gestion des versions d'objets est activée pour le bucket, les objets actifs passent à l'état non actuel et les objets non actuels sont ignorés.

        • Si la gestion des versions d'objets est désactivée pour le bucket, l'opération de suppression supprime définitivement les objets et ignore les objets obsolètes.

      • --enable-permanent-object-deletion : supprime définitivement les objets. Utilisez cet indicateur conjointement avec l'indicateur --delete-object pour supprimer définitivement les objets actifs et archivés d'un bucket, quelle que soit la configuration de la gestion des versions d'objets du bucket.

      • --rewrite-object : mettez à jour les clés de chiffrement gérées par le client pour un ou plusieurs objets.

      • --put-object-event-based-hold : activez les retenues d'objet basées sur des événements.

      • --no-put-object-event-based-hold : désactive les retenues d'objets basées sur des événements.

      • --put-object-temporary-hold : active les retenues d'objets temporaires.

      • --no-put-object-temporary-hold : désactive les retenues d'objets temporaires.

        L'exemple suivant montre comment créer un job pour mettre à jour les métadonnées Content-Language sur en pour tous les objets listés dans manifest.csv.

        gcloud storage batch-operations jobs create my-job \
        --bucket=my-bucket \
        --manifest-location=gs://my-bucket/manifest.csv \
        --put-metadata=Content-Language=en
      • --put-metadata : mettez à jour les métadonnées de l'objet. Spécifiez la paire clé/valeur pour les métadonnées de l'objet que vous souhaitez modifier. Vous pouvez spécifier une ou plusieurs paires clé/valeur sous forme de liste. Vous pouvez également définir des configurations de conservation des objets à l'aide de l'indicateur --put-metadata. Pour ce faire, spécifiez les paramètres de conservation à l'aide des champs Retain-Until et Retention-Mode. Par exemple,

        gcloud storage batch-operations jobs create my-job \
        --bucket=my-bucket \
        --manifest-location=gs://my-bucket/manifest.csv \
        --put-metadata=Retain-Until=RETAIN_UNTIL_TIME, Retention-Mode=RETENTION_MODE

        Où :

        • RETAIN_UNTIL_TIME correspond à la date et à l'heure, au format RFC 3339, jusqu'à laquelle l'objet est conservé. Exemple : 2025-10-09T10:30:00Z. Pour définir la configuration de conservation d'un objet, vous devez activer la conservation sur le bucket qui contient l'objet.

        • RETENTION_MODE est le mode de conservation (Unlocked ou Locked).

          Lorsque vous envoyez une demande de mise à jour des champs RETENTION_MODE et RETAIN_UNTIL_TIME, tenez compte des points suivants :

          • Pour mettre à jour la configuration de conservation des objets, vous devez fournir des valeurs non vides pour les champs RETENTION_MODE et RETAIN_UNTIL_TIME. Si vous n'en définissez qu'un seul, une erreur INVALID_ARGUMENT se produit.
          • Vous pouvez étendre la valeur RETAIN_UNTIL_TIME pour les objets en mode Unlocked ou Locked.
          • La conservation des objets doit être en mode Unlocked si vous souhaitez effectuer les opérations suivantes :
            • Réduisez la valeur RETAIN_UNTIL_TIME.
            • Supprimez la configuration de la conservation. Pour supprimer la configuration, vous devez fournir des valeurs vides pour les champs RETENTION_MODE et RETAIN_UNTIL_TIME.
          • Si vous omettez les champs RETENTION_MODE et RETAIN_UNTIL_TIME, la configuration de la période de conservation reste inchangée.

      • --clear-all-object-custom-contexts : supprime tous les contextes d'objet existants.

        L'exemple suivant montre comment créer un job pour effacer tous les contextes d'objet pour les objets listés dans manifest.csv :

        gcloud storage batch-operations jobs create my-job \
        --bucket=my-bucket \
        --manifest-location=gs://my-bucket/manifest.csv \
        --clear-all-object-custom-contexts
      • --clear-object-custom-contexts : supprime les contextes avec des clés spécifiques. Vous pouvez également mettre à jour des contextes spécifiques tout en supprimant des clés en utilisant à la fois l'option --clear-object-custom-contexts et l'une des options suivantes :

        • --update-object-custom-contexts : fournissez une carte de paires clé/valeur.

          L'exemple suivant montre comment créer un job pour supprimer le contexte avec la clé temp-id et mettre à jour ou insérer le contexte avec les clés project-id et cost-center pour tous les objets listés dans manifest.csv :

          gcloud storage batch-operations jobs create my-job \
          --bucket=my-bucket \
          --manifest-location=gs://my-bucket/manifest.csv \
          --clear-object-custom-contexts=temp-id \
          --update-object-custom-contexts=project-id=project-A,cost-center=engineering
        • --update-object-custom-contexts-file : indiquez le chemin d'accès à un fichier JSON ou YAML contenant des paires clé/valeur.

          L'exemple suivant montre comment créer un job pour traiter les objets définis dans manifest.csv. Voici ce que vous allez apprendre avec ce job :

          • Supprime tous les contextes avec la clé temp-id.

          • Met à jour les contextes existants avec les clés project-id et cost-center définies dans le fichier /tmp/context_updates.json.

          gcloud storage batch-operations jobs create my-job \
          --bucket=my-bucket \
          --manifest-location=gs://my-bucket/manifest.csv \
          --clear-object-custom-contexts=temp-id \
          --update-object-custom-contexts-file=/tmp/context_updates.json

          /tmp/context_updates.json contient les contextes d'objet suivants :

          {
          "project-id": {"value": "project-A"},
          "cost-center": {"value": "engineering"}
          }

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 les bibliothèques clientes.

[](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
       client,
   std::string const& project_id, std::string const& job_id,
   std::string const& target_bucket_name, std::string const& object_prefix) {
  auto const parent =
      std::string{"projects/"} + project_id + "/locations/global";
  namespace sbo = google::cloud::storagebatchoperations::v1;
  sbo::Job job;
  sbo::BucketList* bucket_list = job.mutable_bucket_list();
  sbo::BucketList::Bucket* bucket_config = bucket_list->add_buckets();
  bucket_config->set_bucket(target_bucket_name);
  sbo::PrefixList* prefix_list_config = bucket_config->mutable_prefix_list();
  prefix_list_config->add_included_object_prefixes(object_prefix);
  sbo::DeleteObject* delete_object_config = job.mutable_delete_object();
  delete_object_config->set_permanent_object_deletion_enabled(false);
  auto result = client.CreateJob(parent, job, job_id).get();
  if (!result) throw result.status();
  std::cout << "Created job: " << result->name() << "\n";
}

PHP

Pour en savoir plus, consultez la documentation de référence des 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 les bibliothèques clientes.

use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
use Google\Cloud\StorageBatchOperations\V1\CreateJobRequest;
use Google\Cloud\StorageBatchOperations\V1\Job;
use Google\Cloud\StorageBatchOperations\V1\BucketList;
use Google\Cloud\StorageBatchOperations\V1\BucketList\Bucket;
use Google\Cloud\StorageBatchOperations\V1\PrefixList;
use Google\Cloud\StorageBatchOperations\V1\DeleteObject;

/**
 * Create a new batch job.
 *
 * @param string $projectId Your Google Cloud project ID.
 *        (e.g. 'my-project-id')
 * @param string $jobId A unique identifier for this job.
 *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
 * @param string $bucketName The name of your Cloud Storage bucket to operate on.
 *        (e.g. 'my-bucket')
 * @param string $objectPrefix The prefix of objects to include in the operation.
 *        (e.g. 'prefix1')
 */
function create_job(string $projectId, string $jobId, string $bucketName, string $objectPrefix): void
{
    // Create a client.
    $storageBatchOperationsClient = new StorageBatchOperationsClient();

    $parent = $storageBatchOperationsClient->locationName($projectId, 'global');

    $prefixListConfig = new PrefixList(['included_object_prefixes' => [$objectPrefix]]);
    $bucket = new Bucket(['bucket' => $bucketName, 'prefix_list' => $prefixListConfig]);
    $bucketList = new BucketList(['buckets' => [$bucket]]);

    $deleteObject = new DeleteObject(['permanent_object_deletion_enabled' => false]);

    $job = new Job(['bucket_list' => $bucketList, 'delete_object' => $deleteObject]);

    $request = new CreateJobRequest([
        'parent' => $parent,
        'job_id' => $jobId,
        'job' => $job,
    ]);
    $response = $storageBatchOperationsClient->createJob($request);

    printf('Created job: %s', $response->getName());
}

API REST

API JSON

  1. Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

  2. Créez un fichier JSON contenant les paramètres du job d'opérations par lot Storage. Les paramètres les plus courants sont les suivants :

    {
        "Description": "JOB_DESCRIPTION",
        "BucketList":
        {
        "Buckets":
        [
         {
           "Bucket": "BUCKET_NAME",
           "Manifest": {
              "manifest_location": "MANIFEST_LOCATION"
               }
           "PrefixList": {
              "include_object_prefixes": "OBJECT_PREFIXES"
               }
         }
        ]
        },
        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
         }
        "RewriteObject": {
          "kms_key":"KMS_KEY_VALUE"
          }
        "PutMetadata":{
          "METADATA_KEY": "METADATA_VALUE",
          ...,
          "objectRetention": {
              "retainUntilTime": "RETAIN_UNTIL_TIME",
              "mode": "RETENTION_MODE"
             }
           }
        "PutObjectHold": {
          "temporary_hold": TEMPORARY_HOLD_VALUE,
          "event_based_hold": EVENT_BASED_HOLD_VALUE
        },
        "updateObjectCustomContext": {
           "customContextUpdates": {
              "updates": {
                 "CONTEXT_KEY": { "value": "CONTEXT_VALUE" }
              },
              "keysToClear": ["CONTEXT_KEY_TO_CLEAR"]
           },
           "clearAll": CLEAR_ALL_VALUE
        },
        "dryRun": DRY_RUN_VALUE
        }
         

    Où :

    • JOB_NAME est le nom du job d'opérations Storage par lot.

    • JOB_DESCRIPTION est la description du job d'opérations de stockage par lot.

    • BUCKET_NAME correspond au nom du bucket contenant un ou plusieurs objets que vous souhaitez traiter.

    • Pour spécifier les objets que vous souhaitez traiter, utilisez l'un des attributs suivants dans le fichier JSON :

      • MANIFEST_LOCATION est l'emplacement du manifeste. Par exemple, gs://bucket_name/path/object_name.csv.

      • OBJECT_PREFIXES est une liste séparée par des virgules contenant un ou plusieurs préfixes d'objet. Pour faire correspondre tous les objets, utilisez une liste vide.

    • En fonction du job que vous souhaitez traiter, spécifiez l'une des options suivantes :

      • Supprimer des objets :

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        OBJECT_DELETION_VALUE est TRUE pour supprimer des objets.

      • Mettez à jour la clé de chiffrement gérée par le client pour les objets :

        "RewriteObject":
        {
        "kms_key": KMS_KEY_VALUE
        }

        KMS_KEY_VALUE correspond à la valeur de la clé KMS de l'objet que vous souhaitez mettre à jour.

      • Mettez à jour les métadonnées de l'objet :

        "PutMetadata": {
         "METADATA_KEY": "METADATA_VALUE",
         ...,
        "objectRetention": {
           "retainUntilTime": "RETAIN_UNTIL_TIME",
           "mode": "RETENTION_MODE"
         }
        }

        Où :

        • METADATA_KEY/VALUE est la paire clé-valeur des métadonnées de l'objet. Vous pouvez spécifier une ou plusieurs paires.
        • RETAIN_UNTIL_TIME correspond à la date et à l'heure, au format RFC 3339, jusqu'à laquelle l'objet est conservé. Par exemple, 2025-10-09T10:30:00Z. Pour définir la configuration de conservation d'un objet, vous devez activer la conservation sur le bucket qui contient l'objet.
        • RETENTION_MODE est le mode de conservation (Unlocked ou Locked).

          Lorsque vous envoyez une demande de mise à jour des champs RETENTION_MODE et RETAIN_UNTIL_TIME, tenez compte des points suivants :

          • Pour mettre à jour la configuration de conservation des objets, vous devez fournir des valeurs non vides pour les champs RETENTION_MODE et RETAIN_UNTIL_TIME. Si vous n'en définissez qu'un seul, une erreur INVALID_ARGUMENT se produit.
          • Vous pouvez étendre la valeur RETAIN_UNTIL_TIME pour les objets en mode Unlocked ou Locked.
          • La conservation des objets doit être en mode Unlocked si vous souhaitez effectuer les opérations suivantes :
            • Réduisez la valeur RETAIN_UNTIL_TIME.
            • Supprimez la configuration de la conservation. Pour supprimer la configuration, vous devez fournir des valeurs vides pour les champs RETENTION_MODE et RETAIN_UNTIL_TIME.
          • Si vous omettez les champs RETENTION_MODE et RETAIN_UNTIL_TIME, la configuration de la période de conservation reste inchangée.
        • Mettez à jour Préservations d'objets à titre conservatoire :

          "PutObjectHold": {
          "temporary_hold": TEMPORARY_HOLD_VALUE,
          "event_based_hold": EVENT_BASED_HOLD_VALUE
          }

          Où :

          • TEMPORARY_HOLD_VALUE permet d'activer ou de désactiver l'obligation de conservation temporaire d'un objet. La valeur 1 active la retenue, tandis que la valeur 2 la désactive.

          • EVENT_BASED_HOLD_VALUE permet d'activer ou de désactiver la préservation d'objet basée sur des événements. La valeur 1 active la retenue, tandis que la valeur 2 la désactive.

        • Mettez à jour les contextes d'objet :

          "updateObjectCustomContext": {
          "customContextUpdates": {
            "updates": {
              "CONTEXT_KEY": { "value": "CONTEXT_VALUE" }
            },
            "keysToClear": ["CONTEXT_KEY_TO_CLEAR"]
          },
          "clearAll": CLEAR_ALL_VALUE
          }

          Où :

          • CONTEXT_KEY correspond à la clé de contexte d'objet à insérer ou à mettre à jour.
          • CONTEXT_VALUE correspond à la valeur du contexte d'objet pour la clé.
          • CONTEXT_KEY_TO_CLEAR est la clé à supprimer.
          • CLEAR_ALL_VALUE est défini sur true pour supprimer tous les contextes d'objet existants.
      • DRY_RUN_VALUE est une valeur booléenne facultative. Définissez la valeur sur true pour exécuter le job en mode de simulation. La valeur par défaut est false.

    • Exécutez cURL pour appeler l'API JSON avec une requête POST de job d'opérations par lot Storage :

      curl -X POST --data-binary @JSON_FILE_NAME \
       -H "Authorization: Bearer $(gcloud auth print-access-token)" \
       -H "Content-Type: application/json" \
       "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?job_id=JOB_NAME"

      Où :

      • JSON_FILE_NAME correspond au nom du fichier JSON.
      • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project
      • JOB_NAME est le nom du job d'opérations Storage par lot.

Obtenir des informations sur un job d'opérations Storage par lot

Cette section explique comment obtenir des informations sur un job d'opérations Storage par lot.

Pour obtenir les autorisations nécessaires pour afficher un job d'opérations par lot Storage, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Storage (roles/storage.admin) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Console

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

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket associé à l'opération.
  3. Sur la page Informations sur le bucket, cliquez sur l'onglet Autorisations.
  4. Dans la liste des opérations, cliquez sur l'ID de l'opération du job que vous souhaitez afficher.
  5. La page d'informations affiche les métriques de votre job dans l'onglet Vue d'ensemble, comme les objets découverts et traités, ainsi que les éventuelles erreurs survenues.
  6. Dans le tableau Récapitulatif des erreurs, examinez les détails de l'échec de l'exécution ou cliquez sur Afficher dans Cloud Logging pour afficher les enregistrements.
  7. Pour afficher les paramètres de configuration du job, cliquez sur l'onglet Configuration.

Ligne de commande

  1. Dans la console Google Cloud , activez Cloud Shell.

    Activer Cloud Shell

    En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs describe.

    gcloud storage batch-operations jobs describe JOB_ID

    Où :

    JOB_ID est le nom du job d'opérations Storage par lot.

    Lorsque vous effectuez un test à blanc d'un job, le résultat inclut les champs suivants :

    • totalObjectCount : affiche le nombre d'objets correspondant à vos critères de sélection.
    • errorSummaries : liste les erreurs détectées lors de la simulation, telles que les problèmes d'autorisation ou les configurations non valides.
    • totalBytesFound : si vous utilisez des préfixes d'objet pour la sélection d'objets, le job indique également la taille totale des objets qui seront concernés.

    Si l'opération réussit, la réponse pour le job d'exécution à blanc se présente comme suit :

      bucketList:
        buckets:
        - bucket: my-bucket
          manifest:
            manifestLocation: gs://my-bucket/manifest.csv
      completeTime: '2025-10-27T23:56:32Z'
      counters:
        totalObjectCount: '4'
      createTime: '2025-10-27T23:56:22.243528568Z'
      dryRun: true
      name: projects/my-project/locations/global/jobs/my-job
      putMetadata:
        contentLanguage: en
      state: SUCCEEDED
    

    Une réponse de job réussie omet le champ dryRun et renvoie les métriques suivantes dans le champ counters :

    • Nombre total d'objets trouvés.
    • Nombre total d'octets trouvés lors de l'utilisation de préfixes d'objet.
    • Transformations d'objets réussies.
    • Transformations d'objets ayant échoué, le cas échéant.
    • Contextes d'objet créés, le cas échéant.
    • Les contextes d'objet sont supprimés, le cas échéant.
    • Les contextes d'objet sont mis à jour, le cas échéant. Ce compteur suit les modifications apportées aux clés de contexte existantes.

    La réponse pour une exécution de job réelle ressemble à l'exemple suivant :

      bucketList:
        buckets:
        - bucket: my-bucket
          manifest:
            manifestLocation: gs://my-bucket/manifest.csv
      completeTime: '2025-10-31T20:19:42.357826655Z'
      counters:
        succeededObjectCount: '4'
        totalObjectCount: '4'
      createTime: '2025-10-31T20:19:22.016517077Z'
      name: projects/my-project/locations/global/jobs/my-job
      putMetadata:
        contentLanguage: en
      state: SUCCEEDED
      

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 les bibliothèques clientes.

[](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
       client,
   std::string const& project_id, std::string const& job_id) {
  auto const parent =
      std::string{"projects/"} + project_id + "/locations/global";
  auto const name = parent + "/jobs/" + job_id;
  auto job = client.GetJob(name);
  if (!job) throw job.status();
  std::cout << "Got job: " << job->name() << "\n";
}

PHP

Pour en savoir plus, consultez la documentation de référence des 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 les bibliothèques clientes.

use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
use Google\Cloud\StorageBatchOperations\V1\GetJobRequest;

/**
 * Gets a batch job.
 *
 * @param string $projectId Your Google Cloud project ID.
 *        (e.g. 'my-project-id')
 * @param string $jobId A unique identifier for this job.
 *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
 */
function get_job(string $projectId, string $jobId): void
{
    // Create a client.
    $storageBatchOperationsClient = new StorageBatchOperationsClient();

    $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
    $formattedName = $parent . '/jobs/' . $jobId;

    $request = new GetJobRequest([
        'name' => $formattedName,
    ]);

    $response = $storageBatchOperationsClient->getJob($request);

    printf('Got job: %s', $response->getName());
}

API REST

API JSON

  1. Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API JSON avec une requête de tâche d'opérations par lot Storage GET :

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    Où :

    • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project
    • JOB_ID est le nom du job d'opérations Storage par lot.

    Lorsque vous effectuez un test à blanc d'un job, le résultat inclut les champs suivants :

    • totalObjectCount : affiche le nombre d'objets correspondant à vos critères de sélection.
    • errorSummaries : liste les erreurs détectées lors de la simulation, telles que les problèmes d'autorisation ou les configurations non valides.
    • totalBytesFound : si vous utilisez des préfixes d'objet pour la sélection d'objets, le job indique également la taille totale des objets qui seront concernés.

    Si l'opération réussit, la réponse pour l'exécution à blanc se présente comme suit :

    {
      "name": "projects/my-project/locations/global/jobs/my-job",
      "description": "dry-run-job",
      "deleteObject": {
        "permanent_object_deletion_enabled": true
         },
      "createTime": "2025-10-28T00:26:53.900882459Z",
      "completeTime": "2025-10-28T00:27:04.101663275Z",
      "counters": {
          "totalObjectCount": "5",
          "totalBytesFound": "203"
        },
      "state": "SUCCEEDED",
      "bucketList": {
        "buckets": [
          {
            "bucket": "my-bucket",
            "prefixList": {
              "includedObjectPrefixes": [
                ""
              ]
            }
          }
        ]
      },
      "dryRun": true
    }
    

Une réponse de job réussie omet le champ dryRun et renvoie les métriques suivantes dans le champ counters :

  • Nombre total d'objets trouvés.
  • Nombre total d'octets trouvés lors de l'utilisation de préfixes d'objet.
  • Transformations d'objets réussies.
  • Transformations d'objets ayant échoué, le cas échéant.
  • Contextes d'objet créés, le cas échéant.
  • Les contextes d'objet sont supprimés, le cas échéant.
  • Les contextes d'objet sont mis à jour, le cas échéant. Ce compteur suit les modifications apportées aux clés de contexte existantes.

    La réponse pour une exécution de job réelle ressemble à l'exemple suivant :

    {
    "name": "my-job",
    "description": "my-delete-objects-job",
    "deleteObject": {
      "permanent_object_deletion_enabled": true
    },
    "createTime": "2025-10-28T00:26:53.900882459Z",
    "completeTime": "2025-10-28T00:27:04.101663275Z",
    "counters": {
      "succeededObjectCount: "5"
      "totalObjectCount": "5",
      "totalBytesFound": "203"
    },
    "state": "SUCCEEDED",
    "bucketList": {
      "buckets": [
        {
          "bucket": "my-bucket",
          "prefixList": {
            "includedObjectPrefixes": [
              ""
            ]
          }
        }
      ]
    }
    }
    

Recenser les jobs d'opérations Storage par lot

Cette section explique comment lister les jobs d'opérations de stockage par lot dans un projet.

Pour obtenir les autorisations nécessaires pour lister les jobs d'opérations par lot Storage, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Storage (roles/storage.admin) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Console

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

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket associé à l'opération.
  3. Sur la page Informations sur le bucket, cliquez sur l'onglet Autorisations. La page Opérations affiche la liste des opérations en cours.

Ligne de commande

  1. Dans la console Google Cloud , activez Cloud Shell.

    Activer Cloud Shell

    En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs list.

    gcloud storage batch-operations jobs list

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 les bibliothèques clientes.

[](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
       client,
   std::string const& project_id) {
  auto const parent =
      std::string{"projects/"} + project_id + "/locations/global";
  for (auto const& job : client.ListJobs(parent)) {
    if (!job) throw job.status();
    std::cout << job->name() << "\n";
  }
}

PHP

Pour en savoir plus, consultez la documentation de référence des 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 les bibliothèques clientes.

use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
use Google\Cloud\StorageBatchOperations\V1\ListJobsRequest;

/**
 * List Jobs in a given project.
 *
 * @param string $projectId Your Google Cloud project ID.
 *        (e.g. 'my-project-id')
 */
function list_jobs(string $projectId): void
{
    // Create a client.
    $storageBatchOperationsClient = new StorageBatchOperationsClient();

    $parent = $storageBatchOperationsClient->locationName($projectId, 'global');

    $request = new ListJobsRequest([
        'parent' => $parent,
    ]);

    $jobs = $storageBatchOperationsClient->listJobs($request);

    foreach ($jobs as $job) {
        printf('Job name: %s' . PHP_EOL, $job->getName());
    }
}

API REST

API JSON

  1. Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API JSON avec une requête LIST storage batch operations jobs :

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs"

    Où :

    PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project

Annuler un job d'opérations Storage par lot

Cette section explique comment annuler une tâche d'opérations par lot de stockage dans un projet.

Pour obtenir les autorisations nécessaires pour annuler un job d'opérations par lot de stockage, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Storage (roles/storage.admin) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Console

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

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket associé à l'opération de stockage par lot que vous souhaitez annuler.

  3. Cliquez sur l'onglet Opérations. Cet onglet affiche la liste des jobs d'opérations par lot. Vous ne pouvez annuler que les tâches en cours.

  4. Dans la liste des opérations, sélectionnez une ou plusieurs tâches à annuler, puis cliquez sur Annuler.

Ligne de commande

  1. Dans la console Google Cloud , activez Cloud Shell.

    Activer Cloud Shell

    En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs cancel.

    gcloud storage batch-operations jobs cancel JOB_ID

    Où :

    JOB_ID est le nom du job d'opérations Storage par lot.

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 les bibliothèques clientes.

[](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
       client,
   std::string const& project_id, std::string const& job_id) {
  auto const parent =
      std::string{"projects/"} + project_id + "/locations/global";
  auto const name = parent + "/jobs/" + job_id;
  auto response = client.CancelJob(name);
  if (!response) throw response.status();
  std::cout << "Cancelled job: " << name << "\n";
}

PHP

Pour en savoir plus, consultez la documentation de référence des 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 les bibliothèques clientes.

use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
use Google\Cloud\StorageBatchOperations\V1\CancelJobRequest;

/**
 * Cancel a batch job.
 *
 * @param string $projectId Your Google Cloud project ID.
 *        (e.g. 'my-project-id')
 * @param string $jobId A unique identifier for this job.
 *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
 */
function cancel_job(string $projectId, string $jobId): void
{
    // Create a client.
    $storageBatchOperationsClient = new StorageBatchOperationsClient();

    $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
    $formattedName = $parent . '/jobs/' . $jobId;

    $request = new CancelJobRequest([
        'name' => $formattedName,
    ]);

    $storageBatchOperationsClient->cancelJob($request);

    printf('Cancelled job: %s', $formattedName);
}

API REST

API JSON

  1. Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API JSON avec une requête de tâche d'opérations par lot de stockage CANCEL :

    curl -X CANCEL \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    Où :

    • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project

    • JOB_ID est le nom du job d'opérations Storage par lot.

Job de suppression des opérations Storage par lot

Cette section explique comment supprimer un job d'opérations de stockage par lot.

Pour obtenir les autorisations nécessaires pour supprimer un job d'opérations par lot Storage, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Storage (roles/storage.admin) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Console

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

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket associé à l'opération de stockage par lot que vous souhaitez supprimer.

  3. Cliquez sur l'onglet Opérations. Cet onglet affiche la liste des jobs d'opérations par lot. Vous ne pouvez supprimer que les jobs qui ne sont pas en cours d'exécution, comme ceux qui ont réussi, échoué ou ont été annulés.

  4. Dans la liste des opérations, sélectionnez une ou plusieurs tâches que vous souhaitez supprimer, puis cliquez sur Supprimer.

Ligne de commande

  1. Dans la console Google Cloud , activez Cloud Shell.

    Activer Cloud Shell

    En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs delete.

    gcloud storage batch-operations jobs delete JOB_ID

    Où :

    JOB_ID est le nom du job d'opérations Storage par lot.

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 les bibliothèques clientes.

[](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
       client,
   std::string const& project_id, std::string const& job_id) {
  auto const parent =
      std::string{"projects/"} + project_id + "/locations/global";
  auto const name = parent + "/jobs/" + job_id;
  auto status = client.DeleteJob(name);
  if (!status.ok()) throw status;
  std::cout << "Deleted job: " << name << "\n";
}

PHP

Pour en savoir plus, consultez la documentation de référence des 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 les bibliothèques clientes.

use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
use Google\Cloud\StorageBatchOperations\V1\DeleteJobRequest;

/**
 * Delete a batch job.
 *
 * @param string $projectId Your Google Cloud project ID.
 *        (e.g. 'my-project-id')
 * @param string $jobId A unique identifier for this job.
 *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
 */
function delete_job(string $projectId, string $jobId): void
{
    // Create a client.
    $storageBatchOperationsClient = new StorageBatchOperationsClient();

    $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
    $formattedName = $parent . '/jobs/' . $jobId;

    $request = new DeleteJobRequest([
        'name' => $formattedName,
    ]);

    $storageBatchOperationsClient->deleteJob($request);

    printf('Deleted job: %s', $formattedName);
}

API REST

API JSON

  1. Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API JSON avec une requête de tâche d'opérations par lot de stockage DELETE :

    curl -X DELETE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    Où :

    • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project

    • JOB_ID est le nom du job d'opérations Storage par lot.

Créer un job d'opérations Storage par lot à l'aide d'ensembles de données Storage Insights

Pour créer un job d'opérations par lot Storage à l'aide d'ensembles de données Storage Insights, suivez la procédure décrite dans les sections suivantes.

Pour obtenir les autorisations nécessaires pour créer un job d'opérations par lot Storage, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Storage (roles/storage.admin) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un fichier manifeste à l'aide des ensembles de données Storage Insights

Vous pouvez créer le fichier manifeste pour votre job d'opérations par lot Storage en extrayant des données de BigQuery. Pour ce faire, vous devez interroger l'ensemble de données associé, exporter les données obtenues sous forme de fichier CSV et les enregistrer dans un bucket Cloud Storage. La tâche d'opérations par lot Storage peut ensuite utiliser ce fichier CSV comme fichier manifeste.

L'exécution de la requête SQL suivante dans BigQuery sur une vue d'ensemble de données Storage Insights permet de récupérer les objets de plus de 1 Kio nommés Temp_Training :

  EXPORT DATA OPTIONS(
   uri=`URI`,
   format=`CSV`,
   overwrite=OVERWRITE_VALUE,
   field_delimiter=',') AS
  SELECT bucket, name, generation
  FROM DATASET_VIEW_NAME
  WHERE bucket = BUCKET_NAME
  AND name LIKE (`Temp_Training%`)
  AND size > 1024 * 1024
  AND snapshotTime = SNAPSHOT_TIME
  

Où :

  • URI est l'URI du bucket contenant le fichier manifeste. Exemple :gs://bucket_name/path_to_csv_file/*.csv Lorsque vous utilisez le caractère générique *.csv, BigQuery exporte le résultat vers plusieurs fichiers CSV.
  • OVERWRITE_VALUE est une valeur booléenne. Si la valeur est définie sur true, l'opération d'exportation écrase les fichiers existants à l'emplacement spécifié.
  • DATASET_VIEW_NAME est le nom complet de la vue de l'ensemble de données Storage Insights au format PROJECT_ID.DATASET_ID.VIEW_NAME. Pour trouver le nom de votre ensemble de données, affichez l'ensemble de données associé.

    Où :

    • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project
    • DATASET_ID est le nom de l'ensemble de données. Exemple :objects-deletion-dataset
    • VIEW_NAME est le nom de la vue de l'ensemble de données. Exemple :bucket_attributes_view
  • BUCKET_NAME est le nom du bucket. Exemple :my-bucket

  • SNAPSHOT_TIME correspond à l'heure de l'instantané de la vue de l'ensemble de données Storage Insights. Exemple :2024-09-10T00:00:00Z

Créer un job d'opérations Storage par lot à l'aide d'un fichier manifeste

Pour créer un job d'opérations de stockage par lot afin de traiter les objets contenus dans le fichier manifeste, procédez comme suit :

Console

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

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket qui contient les objets sur lesquels vous souhaitez effectuer des opérations par lot.

    La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.

  3. Cliquez sur Créer des opérations par lot.
  4. Dans le volet Sélectionner une opération, choisissez le type d'opération :
    • Gérer les obligations de conservation des objets : sélectionnez Obligation de conservation temporaire ou Obligation de conservation basée sur des événements. Pour en savoir plus, consultez Obligations de conservation d'objets.
    • Mettre à jour les métadonnées d'un objet : pour ajouter des métadonnées d'objet, procédez comme suit :
      • Pour ajouter des métadonnées personnalisées, procédez comme suit :
        1. Dans le champ Clé, saisissez un nom de clé.
        2. Dans le champ Valeur, saisissez une valeur pour cette clé.
        3. Facultatif : Cliquez sur + Ajouter un élément pour ajouter d'autres paires clé-valeur.
      • Pour mettre à jour les métadonnées à clé fixe, procédez comme suit :
        1. Pour développer la section Mettre à jour les métadonnées à clés fixes, cliquez sur la flèche de développement .
        2. Dans la liste Sélectionnez une ou plusieurs métadonnées à mettre à jour, sélectionnez les éléments de métadonnées à modifier.
    • Mettre à jour/Effectuer la rotation de la clé de chiffrement : pour utiliser ou modifier la clé de chiffrement des objets, procédez comme suit :
      1. Dans la liste Sélectionner une clé Cloud KMS, sélectionnez une clé de chiffrement gérée par le client (CMEK).
      2. Facultatif : Sélectionnez Changer de projet pour choisir une clé dans un autre projet ou sélectionnez Saisir la clé manuellement pour saisir les détails.
    • Supprimer des objets : pour supprimer des objets, procédez comme suit :
      1. Vérifiez si la gestion des versions d'objets est activée.
      2. Si la gestion des versions d'objets est activée, choisissez l'une des options de suppression suivantes :

        • Sélectionnez Supprimer toutes les versions des objets pour supprimer les versions actives et obsolètes.
        • Sélectionnez Supprimer définitivement les versions en ligne pour supprimer uniquement la version en ligne.

        Si la gestion des versions d'objets n'est pas activée, tous les objets sélectionnés pour suppression sont définitivement supprimés.

  5. Cliquez sur Suivant.
  6. Dans le volet Nommer l'opération et spécifier les objets, procédez comme suit :
    1. Dans le champ Nom, saisissez un nom.
    2. Facultatif : Dans le champ Description, saisissez une description.
    3. Dans la section Spécifier des objets, sélectionnez Importer des listes d'objets à l'aide de fichiers manifestes CSV, puis procédez comme suit :

      1. Importez votre fichier manifeste CSV dans un bucket. Ce fichier doit contenir des en-têtes pour Nom du bucket, Clé d'objet et Numéro de génération.
      2. Dans la liste Sélectionner le mode de fichier manifeste, choisissez l'une des options suivantes :
        • Si vous sélectionnez Sélectionner un fichier manifeste dans Cloud Storage, cliquez sur Parcourir dans le champ Sélectionner un fichier manifeste dans Cloud Storage. Dans la boîte de dialogue Sélectionner un objet qui s'affiche, accédez à votre fichier CSV de fichier manifeste, puis cliquez sur Sélectionner.
        • Si vous sélectionnez Sélectionner plusieurs fichiers manifestes à l'aide d'un caractère générique, saisissez le chemin d'accès au fichier dans le champ Saisissez l'emplacement du fichier manifeste à l'aide d'un caractère générique. Par exemple, bucket-name/folder/manifest_*.
  7. Cliquez sur Créer.

Ligne de commande

  1. Dans la console Google Cloud , activez Cloud Shell.

    Activer Cloud Shell

    En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs create :

    gcloud storage batch-operations jobs create \
    JOB_ID \
    --bucket=SOURCE_BUCKET_NAME \
    --manifest-location=URI \
    JOB_TYPE_FLAG

    Où :

    • JOB_ID est le nom du job d'opérations Storage par lot.

    • SOURCE_BUCKET_NAME est le bucket contenant un ou plusieurs objets que vous souhaitez traiter. Exemple :my-bucket

    • URI est l'URI du bucket contenant le fichier manifeste. Exemple :gs://bucket_name/path_to_csv_file/*.csv Lorsque vous utilisez le caractère générique *.csv, BigQuery exporte le résultat vers plusieurs fichiers CSV.

    • JOB_TYPE_FLAG correspond à l'un des indicateurs suivants, en fonction du type de mission.

      • --delete-object : supprime un ou plusieurs objets.

      • --put-metadata : mettez à jour les métadonnées de l'objet. Les métadonnées d'objet sont stockées sous forme de paires clé/valeur. Spécifiez la paire clé/valeur des métadonnées que vous souhaitez modifier. Vous pouvez spécifier une ou plusieurs paires clé/valeur sous forme de liste. Vous pouvez également fournir des configurations de conservation des objets à l'aide de l'indicateur --put-metadata.

      • --rewrite-object : mettez à jour les clés de chiffrement gérées par le client pour un ou plusieurs objets.

      • --put-object-event-based-hold : activez les retenues d'objet basées sur des événements.

      • --no-put-object-event-based-hold : désactive les retenues d'objets basées sur des événements.

      • --put-object-temporary-hold : active les retenues d'objets temporaires.

      • --no-put-object-temporary-hold : désactive les retenues d'objets temporaires.

      • --clear-all-object-custom-contexts : supprime tous les contextes d'objet existants.

        L'exemple suivant montre comment créer un job pour effacer tous les contextes d'objet pour les objets listés dans manifest.csv :

        gcloud storage batch-operations jobs create my-job \
        --bucket=my-bucket \
        --manifest-location=gs://my-bucket/manifest.csv \
        --clear-all-object-custom-contexts
      • --clear-object-custom-contexts : supprime les contextes avec des clés spécifiques. Vous pouvez également mettre à jour des contextes spécifiques tout en supprimant des clés en utilisant à la fois l'option --clear-object-custom-contexts et l'une des options suivantes :

        • --update-object-custom-contexts : fournissez une carte de paires clé/valeur.

          L'exemple suivant montre comment créer un job pour supprimer le contexte avec la clé temp-id et mettre à jour ou insérer le contexte avec les clés project-id et cost-center pour tous les objets listés dans manifest.csv :

          gcloud storage batch-operations jobs create my-job \
          --bucket=my-bucket \
          --manifest-location=gs://my-bucket/manifest.csv \
          --clear-object-custom-contexts=temp-id \
          --update-object-custom-contexts=project-id=project-A,cost-center=engineering
        • --update-object-custom-contexts-file : indiquez le chemin d'accès à un fichier JSON ou YAML contenant des paires clé/valeur.

          L'exemple suivant montre comment créer un job pour traiter les objets définis dans manifest.csv. Voici ce que vous allez apprendre avec ce job :

          • Supprime tous les contextes avec la clé temp-id.

          • Met à jour les contextes existants avec les clés project-id et cost-center définies dans le fichier /tmp/context_updates.json.

          gcloud storage batch-operations jobs create my-job \
          --bucket=my-bucket \
          --manifest-location=gs://my-bucket/manifest.csv \
          --clear-object-custom-contexts=temp-id \
          --update-object-custom-contexts-file=/tmp/context_updates.json

          /tmp/context_updates.json contient les contextes d'objet suivants :

          {
          "project-id": {"value": "project-A"},
          "cost-center": {"value": "engineering"}
          }

Intégration à VPC Service Controls

Vous pouvez fournir un niveau de sécurité supplémentaire pour les ressources des opérations par lot de stockage à l'aide de VPC Service Controls. Lorsque vous utilisez VPC Service Controls, vous ajoutez des projets aux périmètres de service afin de protéger les ressources et les services des requêtes provenant de l'extérieur du périmètre. Pour en savoir plus sur les détails du périmètre de service VPC Service Controls pour les opérations par lot de stockage, consultez Produits compatibles et limites.

Utiliser Cloud Audit Logs pour les jobs d'opérations de stockage par lot

Les jobs d'opérations de stockage par lot enregistrent les transformations apportées aux objets Cloud Storage dans les journaux d'audit Cloud Storage. Vous pouvez utiliser Cloud Audit Logs avec Cloud Storage pour suivre les transformations d'objets effectuées par les tâches d'opérations de stockage par lot. Pour savoir comment activer les journaux d'audit, consultez Activer les journaux d'audit. Dans l'entrée de journal d'audit, le champ de métadonnées callUserAgent avec la valeur StorageBatchOperations indique une transformation des opérations par lot de stockage.

Étapes suivantes