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 opérations de stockage par lot.
Avant de commencer
Pour créer et gérer des jobs d'opérations par lot de stockage, 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 Storage Batch Operations
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 des objets à traiter dans un job d'opérations par lot Storage.
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
- Dans la console Cloud de Confiance , accédez à la page Buckets de Cloud Storage.
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é.
- Cliquez sur Créer des opérations par lot.
- 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 des objets : pour ajouter des métadonnées d'objet, procédez comme suit :
- Pour ajouter des métadonnées personnalisées, procédez comme suit :
- Dans le champ Clé, saisissez un nom de clé.
- Dans le champ Valeur, saisissez une valeur pour cette clé.
- 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 :
- Pour développer la section Mettre à jour les métadonnées à clés fixes, cliquez sur la flèche de développement .
- Dans la liste Sélectionnez une ou plusieurs métadonnées à mettre à jour, sélectionnez les éléments de métadonnées à modifier.
- Pour ajouter des métadonnées personnalisées, procédez comme suit :
- Mettre à jour/Effectuer la rotation de la clé de chiffrement : pour utiliser ou modifier la clé de chiffrement des objets, procédez comme suit :
- Dans la liste Sélectionner une clé Cloud KMS, sélectionnez une clé de chiffrement gérée par le client (CMEK).
- (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 :
- Vérifiez si la gestion des versions d'objets est activée.
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.
- Cliquez sur Suivant.
- Dans le volet Nommer l'opération et spécifier les objets, procédez comme suit :
- Dans le champ Nom, saisissez un nom.
- Facultatif : Dans le champ Description, saisissez une description.
- 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 :
- Dans le champ Saisissez les préfixes des objets à inclure, saisissez un préfixe.
- 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 :
- Importez votre fichier CSV manifeste 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.
- 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_*.
- Cliquez sur Créer.
Ligne de commande
Pour définir la liste des objets de votre tâche d'opération par lot, vous pouvez choisir l'une des configurations de source suivantes :
- Projet comme source : cible les objets d'un projet à l'aide d'une configuration d'ensemble de données Storage Insights. Au lieu de spécifier des buckets ou des préfixes individuels, vous pouvez spécifier des paramètres de filtre avancés, tels que
--insights-dataset-config,--target-project,--bucket-filterset--object-filters. Pour en savoir plus, consultez Créer un job à l'aide de filtres avancés. - Buckets comme source : cible les objets dans des buckets spécifiques. Vous devez spécifier l'un des indicateurs suivants :
--bucketou--bucket-listpour définir les buckets cibles.- Un fichier CSV manifeste (
--manifest-location) ou des préfixes d'objet (--included-object-prefixes) pour définir les objets cibles.
-
Dans la console Cloud de Confiance , activez Cloud Shell.
En bas de la console Cloud de Confiance , 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.
Pour définir le projet par défaut, exécutez la commande
gcloud config set project:gcloud config set project PROJECT_ID
où PROJECT_ID correspond à l'ID de votre projet.
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 createavec l'option--dry-run:gcloud storage batch-operations jobs create DRY_RUN_JOB_NAME \ {--bucket=BUCKET | --bucket-list=BUCKET_LIST} OBJECT_SELECTION_FLAG JOB_TYPE_FLAG \ --dry-runOù :
DRY_RUN_JOB_NAMEest le nom du job de dry run d'opérations de stockage par lot.
Les autres paramètres sont identiques à ceux du 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.
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 | --bucket-list=BUCKET_LIST} OBJECT_SELECTION_FLAG JOB_TYPE_FLAGLes paramètres sont les suivants :
JOB_NAMEest le nom du job d'opérations Storage par lot.--bucket:BUCKETest le nom du bucket contenant les objets que vous souhaitez traiter.--bucket-list:BUCKET_LISTest une liste d'un ou de plusieurs noms de buckets contenant les objets que vous souhaitez traiter, séparés par une virgule. Vous pouvez spécifier jusqu'à 1 000 buckets provenant de n'importe quel projet, à condition que chacun d'eux soit inscrit à un forfait Storage Intelligence.OBJECT_SELECTION_FLAGcorrespond à 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=''.
- Pour ne faire correspondre qu'un préfixe, utilisez :
--manifest-location: spécifiez l'emplacement du manifeste. Par exemple,gs://bucket_name/path/object_name.csv.
JOB_TYPE_FLAGcorrespond à l'un des indicateurs suivants que vous devez spécifier, en fonction du type de mission.--delete-object: supprime un ou plusieurs objets.Si la gestion des versions d'objets est activée pour le bucket, les objets actuels passent à l'état obsolète et les objets obsolètes 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 archivés.
--enable-permanent-object-deletion: supprime définitivement les objets. Utilisez cet indicateur conjointement avec l'indicateur--delete-objectpour 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. Vous pouvez également utiliser cette option pour modifier la classe de stockage de l'objet en spécifiant la cléstorage-class. Les classes de stockage compatibles incluentSTANDARD,NEARLINE,COLDLINEetARCHIVE. Par exemple,--rewrite-object=storage-class=NEARLINE.--set-object-acls-from-file: corrige les listes de contrôle des accès (LCA) des objets. Fournissez un fichier JSON ou YAML contenant les droits d'accès à ajouter ou à modifier pour des entités telles queallUsersouallAuthenticatedUsers. Par exemple :--set-object-acls-from-file=acl-updates.yamlou--set-object-acls-from-file=acl-updates.json.La structure du fichier YAML pour les mises à jour est la suivante :
grants: - entity: allAuthenticatedUsers role: READER remove_entities: - allUsersLa structure du fichier JSON pour les mises à jour est la suivante :
{ "grants": [ { "entity": "allAuthenticatedUsers", "role": "READER" } ], "remove_entities": [ "allUsers" ] }
--put-object-event-based-hold: activez les retenues d'objets basées sur des événements.--no-put-object-event-based-hold: désactivez 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ésactivez les retenues d'objets temporaires.L'exemple suivant montre comment créer un job pour mettre à jour les métadonnées
Content-Languagesurenpour tous les objets listés dansmanifest.csv.gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --put-metadata=Content-Language=en
L'exemple suivant montre comment créer un job ciblant plusieurs buckets pour mettre à jour
Content-Languagesuren-us:gcloud storage batch-operations jobs create my-job \ --bucket-list=bucket1,bucket2 \ --included-object-prefixes='' \ --put-metadata=Content-Language=en-us
--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 champsRetain-UntiletRetention-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_TIMEcorrespond à 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_MODEest le mode de conservation (UnlockedouLocked).Lorsque vous envoyez une demande de mise à jour des champs
RETENTION_MODEetRETAIN_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_MODEetRETAIN_UNTIL_TIME. Si vous n'en définissez qu'un seul, une erreurINVALID_ARGUMENTse produit. - Vous pouvez étendre la valeur
RETAIN_UNTIL_TIMEpour les objets en modeUnlockedouLocked. - La conservation des objets doit être en mode
Unlockedsi 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_MODEetRETAIN_UNTIL_TIME.
- Réduisez la valeur
- Si vous omettez les champs
RETENTION_MODEetRETAIN_UNTIL_TIME, la configuration de la période de conservation reste inchangée.
- Pour mettre à jour la configuration de conservation des objets, vous devez fournir des valeurs non vides pour les champs
--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-contextset l'une des options suivantes :--update-object-custom-contexts: fournissez un mappage de paires clé/valeur.L'exemple suivant montre comment créer un job pour supprimer le contexte avec la clé
temp-idet mettre à jour ou insérer le contexte avec les clésproject-idetcost-centerpour tous les objets listés dansmanifest.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-idetcost-centerdé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
Où
/tmp/context_updates.jsoncontient 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.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour les bibliothèques clientes.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
API JSON
Pour définir la liste des objets de votre tâche d'opération par lot, vous pouvez choisir l'une des configurations de source suivantes :
- Projet comme source : cible les objets à l'échelle du projet à l'aide d'une configuration
projectSource. Au lieu de lister des préfixes ou des buckets individuels, vous spécifiez des paramètres de filtre avancés pour interroger de manière dynamique les métadonnées sur les insights de stockage. Pour en savoir plus, consultez l'onglet "API JSON" dans Créer un job à l'aide de filtres avancés. - Buckets comme source : cible les objets dans des buckets spécifiques à l'aide d'une configuration
bucketList. Vous devez spécifier les buckets cibles et un fichier manifeste CSV (manifest_location) ou des préfixes d'objet (include_object_prefixes).
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Créez un fichier JSON contenant les paramètres du job d'opérations par lot de stockage. 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", "storage_class":"STORAGE_CLASS_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 }, "SetObjectAcls": { "accessControlsUpdates": { "grants": [ { "entity": "allUsers", "role": "READER" } ], "removeEntities": ["allAuthenticatedUsers"] } }, "dryRun": DRY_RUN_VALUE }
Where:JOB_NAMEest le nom du job d'opérations Storage par lot.JOB_DESCRIPTIONest la description du job d'opérations de stockage par lot.BUCKET_NAMEcorrespond 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_LOCATIONest l'emplacement du manifeste. Par exemple,gs://bucket_name/path/object_name.csv.OBJECT_PREFIXESest 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 }
Où
OBJECT_DELETION_VALUEestTRUEpour 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_VALUEcorrespond à la valeur de la clé KMS de l'objet que vous souhaitez mettre à jour.Mettez à jour la classe de stockage des objets :
"RewriteObject": { "storage_class": STORAGE_CLASS_VALUE }
Où
STORAGE_CLASS_VALUEcorrespond à la nouvelle classe de stockage vers laquelle vous souhaitez transférer les objets. Les classes de stockage compatibles incluentSTANDARD,NEARLINE,COLDLINEetARCHIVE.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/VALUEest la paire clé-valeur des métadonnées de l'objet. Vous pouvez spécifier une ou plusieurs paires.RETAIN_UNTIL_TIMEcorrespond à 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_MODEest le mode de conservation (UnlockedouLocked).Lorsque vous envoyez une demande de mise à jour des champs
RETENTION_MODEetRETAIN_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_MODEetRETAIN_UNTIL_TIME. Si vous n'en définissez qu'un seul, une erreurINVALID_ARGUMENTse produit. - Vous pouvez étendre la valeur
RETAIN_UNTIL_TIMEpour les objets en modeUnlockedouLocked. - La conservation des objets doit être en mode
Unlockedsi 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_MODEetRETAIN_UNTIL_TIME.
- Réduisez la valeur
- Si vous omettez les champs
RETENTION_MODEetRETAIN_UNTIL_TIME, la configuration de la période de conservation reste inchangée.
- Pour mettre à jour la configuration de conservation des objets, vous devez fournir des valeurs non vides pour les champs
Mettez à jour Préservations d'objets à titre conservatoire :
"PutObjectHold": { "temporary_hold": TEMPORARY_HOLD_VALUE, "event_based_hold": EVENT_BASED_HOLD_VALUE }
Où :
TEMPORARY_HOLD_VALUEpermet d'activer ou de désactiver la conservation temporaire de l'objet. La valeur1active le report, tandis que la valeur2le désactive.EVENT_BASED_HOLD_VALUEpermet d'activer ou de désactiver la préservation d'objet basée sur des événements. La valeur1active le report, tandis que la valeur2le 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_KEYcorrespond à la clé de contexte d'objet à insérer ou à mettre à jour.CONTEXT_VALUEcorrespond à la valeur du contexte d'objet pour la clé.CONTEXT_KEY_TO_CLEARest la clé à supprimer.CLEAR_ALL_VALUEest défini surtruepour supprimer tous les contextes d'objet existants.
Mettez à jour les listes de contrôle des accès (LCA) aux objets :
"SetObjectAcls": { "accessControlsUpdates": { "grants": [ { "entity": "ENTITY_NAME", "role": "ROLE_NAME" } ], "removeEntities": ["ENTITY_TO_REMOVE"] } }
Où :
ENTITY_NAMEest l'entité à laquelle ajouter ou mettre à jour l'accès. Par exemple,allUsers,allAuthenticatedUsersou un utilisateur/groupe spécifique.ROLE_NAMEest le rôle à attribuer. Par exemple,READERetOWNER.ENTITY_TO_REMOVEest l'entité dont vous souhaitez supprimer les identifiants.
DRY_RUN_VALUEest une valeur booléenne facultative. Définissez la valeur surtruepour exécuter le job en mode de simulation. La valeur par défaut estfalse.
Exécutez
curlpour appeler l'API JSON avec une requêtePOSTStorage Batch Operations :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_NAMEcorrespond au nom du fichier JSON.PROJECT_IDcorrespond à l'ID ou au numéro du projet. Exemple :my-projectJOB_NAMEest 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
- Dans la console Cloud de Confiance , accédez à la page Buckets de Cloud Storage.
- Dans la liste des buckets, cliquez sur le nom du bucket associé à l'opération.
- Sur la page Informations sur le bucket, cliquez sur l'onglet Autorisations.
- Dans la liste des opérations, cliquez sur l'ID de l'opération du job que vous souhaitez afficher.
- La page d'informations affiche les métriques de votre job dans l'onglet Présentation, comme les objets découverts et traités, ainsi que les éventuelles erreurs survenues.
- 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.
- Pour afficher les paramètres de configuration du job, cliquez sur l'onglet Configuration.
Ligne de commande
-
Dans la console Cloud de Confiance , activez Cloud Shell.
En bas de la console Cloud de Confiance , 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.
Dans votre environnement de développement, exécutez la commande
gcloud storage batch-operations jobs describe.gcloud storage batch-operations jobs describe JOB_NAME
Où :
JOB_NAMEest 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: affiche la taille totale des objets concernés. Ce champ ne s'affiche que lorsque vous utilisez des préfixes d'objet pour la sélection d'objets.
Si l'opération réussit, la réponse pour le job dry run 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: SUCCEEDEDUne réponse de job réussie omet le champ
dryRunet renvoie les métriques suivantes dans le champcounters:- 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 ont été supprimés, le cas échéant.
- Les contextes d'objet ont été 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.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour les bibliothèques clientes.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
API JSON
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Exécutez
cURLpour appeler l'API JSON avec une requêteGETStorage Batch Operations :curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_NAME"
Où :
PROJECT_IDcorrespond à l'ID ou au numéro du projet. Exemple :my-projectJOB_NAMEest 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: affiche la taille totale des objets concernés. Ce champ ne s'affiche que lorsque vous utilisez des préfixes d'objet pour la sélection d'objets.
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
dryRunet renvoie les métriques suivantes dans le champcounters:- 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 ont été supprimés, le cas échéant.
Les contextes d'objet ont été 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": [ "" ] } } ] } }
Lister les opérations sur les buckets
Pour les jobs qui incluent plusieurs buckets, vous pouvez afficher la progression et l'état des opérations sur les buckets individuels. Pour lister les opérations effectuées sur les buckets pour un job spécifique, exécutez la commande gcloud storage batch-operations bucket-operations list :
gcloud storage batch-operations bucket-operations list --job=JOB_NAME
Vous pouvez également filtrer la liste pour afficher des buckets spécifiques à l'aide de l'option --buckets :
gcloud storage batch-operations bucket-operations list --job=JOB_NAME --buckets=BUCKET_NAME_LIST
L'exemple suivant montre comment lister les opérations pour bucket1 et bucket2 pour le job my-job :
gcloud storage batch-operations bucket-operations list --job=my-job --buckets=bucket1,bucket2
Où :
JOB_NAMEest le nom unique du job d'opérations par lot de stockage que vous avez créé. Exemple :my-jobBUCKET_NAME_LISTest une liste de noms de buckets séparés par une virgule, sans espace entre les noms. Exemple :bucket1,bucket2
Décrire une opération de bucket
Pour afficher les détails d'une opération de bucket spécifique, vous pouvez utiliser l'une des méthodes suivantes :
Exécutez la commande
gcloud storage batch-operations bucket-operations describeavec le flag du nom de ressource de l'opération :gcloud alpha storage batch-operations bucket-operations describe BUCKET_OPERATION_RESOURCE_NAME
Où :
BUCKET_OPERATION_RESOURCE_NAMEest le chemin d'accès complet à la ressource de l'opération de bucket. Exemple :projects/my-project/locations/global/jobs/my-job/bucketOperations/bo-1
Exécutez la commande
gcloud storage batch-operations bucket-operations describeavec les options d'ID d'opération et d'ID de job du bucket d'opération :gcloud alpha storage batch-operations bucket-operations describe BUCKET_OPERATION_ID --job=JOB_NAME
Où :
BUCKET_OPERATION_IDest l'ID de l'opération de bucket.JOB_NAMEest le nom unique du job d'opérations par lot de stockage que vous avez créé. Exemple :my-job
Recenser les jobs d'opérations Storage par lot
Cette section explique comment lister les jobs d'opérations Storage 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
- Dans la console Cloud de Confiance , accédez à la page Buckets de Cloud Storage.
- Dans la liste des buckets, cliquez sur le nom du bucket associé à l'opération.
- 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
-
Dans la console Cloud de Confiance , activez Cloud Shell.
En bas de la console Cloud de Confiance , 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.
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.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour les bibliothèques clientes.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
API JSON
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Exécutez
cURLpour appeler l'API JSON avec une requêteLISTstorage 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_IDcorrespond à 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ération 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
- Dans la console Cloud de Confiance , accédez à la page Buckets de Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket associé à l'opération de stockage par lot que vous souhaitez annuler.
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.
Dans la liste des opérations, sélectionnez une ou plusieurs tâches à annuler, puis cliquez sur Annuler.
Ligne de commande
-
Dans la console Cloud de Confiance , activez Cloud Shell.
En bas de la console Cloud de Confiance , 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.
Dans votre environnement de développement, exécutez la commande
gcloud storage batch-operations jobs cancel.gcloud storage batch-operations jobs cancel JOB_NAME
Où :
JOB_NAMEest 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.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour les bibliothèques clientes.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
API JSON
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Exécutez
cURLpour appeler l'API JSON avec une requêteCANCELa storage batch operations job :curl -X CANCEL \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_NAME"
Où :
PROJECT_IDcorrespond à l'ID ou au numéro du projet. Exemple :my-projectJOB_NAMEest 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
- Dans la console Cloud de Confiance , accédez à la page Buckets de Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket associé à l'opération de stockage par lot que vous souhaitez supprimer.
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.
Dans la liste des opérations, sélectionnez une ou plusieurs tâches à supprimer, puis cliquez sur Supprimer.
Ligne de commande
-
Dans la console Cloud de Confiance , activez Cloud Shell.
En bas de la console Cloud de Confiance , 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.
Dans votre environnement de développement, exécutez la commande
gcloud storage batch-operations jobs delete.gcloud storage batch-operations jobs delete JOB_NAME
Où :
JOB_NAMEest 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.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour les bibliothèques clientes.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
API JSON
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Exécutez
cURLpour appeler l'API JSON avec une requêteDELETEa storage batch operations job :curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_NAME"
Où :
PROJECT_IDcorrespond à l'ID ou au numéro du projet. Exemple :my-projectJOB_NAMEest le nom du job d'opérations Storage par lot.
Créer un job d'opérations Storage par lot à l'aide des ensembles de données Storage Insights
Pour exécuter un job d'opérations par lot sur les objets listés dans un ensemble de données, sélectionnez l'une des options suivantes :
Utiliser des filtres avancés : filtrez les objets de manière dynamique au niveau du projet directement dans la commande Google Cloud CLI.
Les ensembles de données Storage Insights sont créés à partir d'instantanés périodiques de vos métadonnées de stockage. Chaque instantané comporte un code temporel qui indique quand les métadonnées ont été capturées. Lorsque vous exécutez un job par lot à l'aide de filtres avancés, cette heure d'instantané détermine les objets et les versions qui sont traités. Par défaut, les opérations par lot de stockage sélectionnent automatiquement l'heure du dernier instantané. Pour éviter les opérations sur des données obsolètes, la création de tâches échoue si l'instantané sélectionné date de plus de deux jours. Pour savoir comment résoudre cet échec, consultez Résoudre les problèmes liés aux opérations par lot Storage.
Utiliser un fichier manifeste : générez un fichier manifeste CSV en exécutant une requête BigQuery, puis fournissez-le au job.
Ces méthodes sont décrites dans les sections suivantes.
Utiliser des filtres avancés
Au lieu de créer un fichier manifeste, vous pouvez utiliser des filtres CEL (Common Expression Language) pour sélectionner directement des objets en fonction des champs de votre ensemble de données Storage Insights. Vous pouvez exécuter des jobs dans plusieurs buckets d'un projet. Lorsque vous utilisez des filtres de dataset pour la sélection d'objets, les opérations par lot de stockage ciblent les objets actifs et actuels à partir de l'instantané de dataset sélectionné. Par conséquent, le job n'inclut que les objets qui ont une valeur NULL pour softDeleteTime et timeDeleted au moment du snapshot.
Ligne de commande
-
Dans la console Cloud de Confiance , activez Cloud Shell.
En bas de la console Cloud de Confiance , 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.
Exécutez la commande
gcloud storage batch-operations jobs create:gcloud storage batch-operations jobs create JOB_NAME \ {--insights-dataset-config=INSIGHTS_DATASET_CONFIG_RESOURCE_NAME --target-project=TARGET_PROJECT [--bucket-filters=BUCKET_FILTER_CEL] [--object-filters=OBJECT_FILTER_CEL] [--target-locations=TARGET_LOCATIONS] [--target-snapshot-time=TARGET_SNAPSHOT_TIME] | --dry-run-job-id=DRY_RUN_JOB_ID} \ --JOB_TYPE_FLAGOù :
JOB_NAMEest le nom du job d'opérations Storage par lot.INSIGHTS_DATASET_CONFIG_RESOURCE_NAME: nom de ressource de la configuration de l'ensemble de données. Exemple :projects/{project-id}/locations/{location-id}/datasetConfigs/{dataset_config_id}. Vous devez spécifier ce paramètre avant d'utiliser les options--bucket-filterset--object-filters.TARGET_PROJECT: ID du projet ou numéro du projet associé aux ressources cibles.BUCKET_FILTER_CELetOBJECT_FILTER_CEL(facultatif) : expressions de filtre CEL utilisées pour sélectionner des objets. Voici quelques exemples :--bucket-filters="name in ['bucket-1', 'bucket-2']"--object-filters="size >= 5000 && name.endsWith('.pdf')"Pour en savoir plus sur les champs, les opérateurs et les fonctions compatibles, consultez la documentation de référence sur les filtres CEL.
TARGET_LOCATIONS(facultatif) : liste des emplacements Cloud Storage utilisés pour affiner le champ d'application du job. Exemple :us,us-central1,us-east4. Utilisez ce paramètre pour exclure les zones où le service est indisponible. Si seulTARGET_LOCATIONSest spécifié et queTARGET_SNAPSHOT_TIMEest omis, le job choisit automatiquement le code temporel du snapshot le plus récent qui a été correctement renseigné dans les vues des attributs d'objet et de bucket pour tous les emplacements spécifiés.TARGET_SNAPSHOT_TIME(facultatif) : code temporel UTC de l'instantané du jeu de données à utiliser, au format RFC 3339. Exemple :2026-05-03T16:00:00ZCet instantané doit exister dans les vues des attributs de votre bucket et de vos objets. Si vous spécifiez ce paramètre, vous devez également spécifier le paramètreTARGET_LOCATIONS.DRY_RUN_JOB_ID: identifiant d'un job de simulation exécuté précédemment. Si vous spécifiez ce paramètre, vous ne pouvez spécifier aucun autre paramètre de sélection d'objet, y compris--insights-dataset-config,--target-project,--bucket-filters,--object-filters,--target-locationset--target-snapshot-time. Le job actif interroge tous les critères de sélection directement à partir du job de simulation.JOB_TYPE_FLAG: indicateur correspondant à l'opération groupée que vous souhaitez effectuer, par exemple--put-metadataou--delete-object.
API JSON
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Créez un fichier de configuration JSON qui spécifie les filtres d'ensemble de données et les paramètres des opérations groupées. Exemple :
{ "description": "JOB_DESCRIPTION", "projectSource": { "project": "projects/TARGET_PROJECT", "insightsDatasetConfig": "INSIGHTS_DATASET_CONFIG_RESOURCE_NAME", "bucketFilters": { "expression": "BUCKET_FILTER_CEL" }, "objectFilters": { "expression": "OBJECT_FILTER_CEL" }, "snapshotTime": "SNAPSHOT_TIME", "targetLocations": { "locations": ["LOCATION_1", "LOCATION_2"] } }, "deleteObject": { "permanentObjectDeletionEnabled": OBJECT_DELETION_VALUE } }
Où :
JOB_DESCRIPTIONest la description du poste.TARGET_PROJECTcorrespond à l'ID du projet ou au numéro du projet associé aux objets cibles.
INSIGHTS_DATASET_CONFIG_RESOURCE_NAMEcorrespond au nom complet de la ressource de configuration de l'ensemble de données (par exemple,projects/{project-id}/locations/{location-id}/datasetConfigs/{dataset_config_id}).BUCKET_FILTER_CELest l'expression de filtre CEL pour les buckets. Exemple :name in ['bucket-1', 'bucket-2']Pour en savoir plus sur les mots clés, les champs et les opérateurs compatibles, consultez la documentation de référence sur les filtres CEL.OBJECT_FILTER_CELest l'expression de filtre CEL pour les objets. Exemple :size >= 5000 && name.endsWith('.pdf')snapshotTime(facultatif) : code temporel UTC spécifique au format RFC 3339 (par exemple,"2026-05-03T16:00:00Z") indiquant l'instantané de l'ensemble de données à utiliser. Cet instantané doit exister à la fois dans les vues de votre bucket et de votre ensemble de données d'objets pour toutes les zones géographiques cibles. Si vous spécifiez ce champ, vous devez également spécifier le champtargetLocations.targetLocations(facultatif) : objet JSON spécifiant une liste d'emplacements Cloud Storage (par exemple,["us", "us-central1", "us-east4"]) pour filtrer le champ d'application du job. Si des dépendances sont en panne dans des lieux spécifiques, vous pouvez limiter la tâche à ces lieux. Si seultargetLocationsest spécifié et quesnapshotTimeest omis, le job choisit automatiquement le code temporel du snapshot le plus récent qui a été correctement renseigné dans les vues des attributs d'objet et de bucket pour tous les emplacements spécifiés.OBJECT_DELETION_VALUEest le booléen qui active ou désactive la suppression définitive. Par exemple,trueoufalse.
Envoyez une requête
POSTà l'aide decURLpour exécuter le job :curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ -d @JSON_FILE_NAME \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?job_id=JOB_NAME"Où :
JSON_FILE_NAMEcorrespond au nom du fichier JSON.PROJECT_IDcorrespond à l'ID ou au numéro du projet. Exemple :my-projectJOB_NAMEest le nom du job d'opérations Storage par lot.
Utiliser un fichier manifeste
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 tâche 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. Le job d'opérations de stockage par lot 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ù :
URIcorrespond à l'URI du bucket contenant le fichier manifeste. Exemple :gs://bucket_name/path_to_csv_file/*.csvLorsque vous utilisez le caractère générique*.csv, BigQuery exporte le résultat vers plusieurs fichiers CSV.OVERWRITE_VALUEest une valeur booléenne. Si la valeur est définie surtrue, l'opération d'exportation écrase les fichiers existants à l'emplacement spécifié.DATASET_VIEW_NAMEest le nom complet de la vue de l'ensemble de données Storage Insights au formatPROJECT_ID.DATASET_ID.VIEW_NAME. Pour trouver le nom de votre ensemble de données, affichez l'ensemble de données associé.Où :
PROJECT_IDcorrespond à l'ID ou au numéro du projet. Exemple :my-projectDATASET_IDest le nom de l'ensemble de données. Exemple :objects-deletion-datasetVIEW_NAMEest le nom de la vue de l'ensemble de données. Exemple :bucket_attributes_view
BUCKET_NAMEest le nom du bucket. Exemple :my-bucketSNAPSHOT_TIMEcorrespond à 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
- Dans la console Cloud de Confiance , accédez à la page Buckets de Cloud Storage.
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é.
- Cliquez sur Créer des opérations par lot.
- 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 des objets : pour ajouter des métadonnées d'objet, procédez comme suit :
- Pour ajouter des métadonnées personnalisées, procédez comme suit :
- Dans le champ Clé, saisissez un nom de clé.
- Dans le champ Valeur, saisissez une valeur pour cette clé.
- 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 :
- Pour développer la section Mettre à jour les métadonnées à clés fixes, cliquez sur la flèche de développement .
- Dans la liste Sélectionnez une ou plusieurs métadonnées à mettre à jour, sélectionnez les éléments de métadonnées à modifier.
- Pour ajouter des métadonnées personnalisées, procédez comme suit :
- Mettre à jour/Effectuer la rotation de la clé de chiffrement : pour utiliser ou modifier la clé de chiffrement des objets, procédez comme suit :
- Dans la liste Sélectionner une clé Cloud KMS, sélectionnez une clé de chiffrement gérée par le client (CMEK).
- (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 :
- Vérifiez si la gestion des versions d'objets est activée.
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.
- Cliquez sur Suivant.
- Dans le volet Nommer l'opération et spécifier les objets, procédez comme suit :
- Dans le champ Nom, saisissez un nom.
- Facultatif : Dans le champ Description, saisissez une description.
- 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 :
- Importez votre fichier CSV manifeste 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.
- 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_*.
- Cliquez sur Créer.
Ligne de commande
-
Dans la console Cloud de Confiance , activez Cloud Shell.
En bas de la console Cloud de Confiance , 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.
Dans votre environnement de développement, exécutez la commande
gcloud storage batch-operations jobs create:gcloud storage batch-operations jobs create \ JOB_NAME \ {--bucket=SOURCE_BUCKET | --bucket-list=SOURCE_BUCKET_LIST} \ --manifest-location=URI \ JOB_TYPE_FLAGOù :
JOB_NAMEest le nom du job d'opérations Storage par lot.SOURCE_BUCKETcorrespond au nom du bucket contenant les objets que vous souhaitez traiter. Exemple :my-bucketSOURCE_BUCKET_LISTest une liste d'un ou de plusieurs noms de buckets contenant les objets que vous souhaitez traiter, séparés par une virgule. Exemple :bucket1,bucket2URIcorrespond à l'URI du bucket contenant le fichier manifeste. Exemple :gs://bucket_name/path_to_csv_file/*.csvLorsque vous utilisez le caractère générique*.csv, BigQuery exporte le résultat vers plusieurs fichiers CSV.JOB_TYPE_FLAGcorrespond à l'un des flags 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. Vous pouvez également utiliser cette option pour modifier la classe de stockage de l'objet en spécifiant la cléstorage-class. Les classes de stockage compatibles incluentSTANDARD,NEARLINE,COLDLINEetARCHIVE. Par exemple,--rewrite-object=storage-class=NEARLINE.--set-object-acls-from-file: corrige les listes de contrôle des accès (LCA) des objets. Indiquez le chemin d'accès à un fichier JSON ou YAML contenant les autorisations à ajouter ou à mettre à jour pour des entités telles queallUsersouallAuthenticatedUsers. Exemple :--set-object-acls-from-file=acl-updates.yaml--put-object-event-based-hold: activez les retenues d'objets basées sur des événements.--no-put-object-event-based-hold: désactivez 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ésactivez 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-contextset l'une des options suivantes :--update-object-custom-contexts: fournissez un mappage de paires clé/valeur.L'exemple suivant montre comment créer un job pour supprimer le contexte avec la clé
temp-idet mettre à jour ou insérer le contexte avec les clésproject-idetcost-centerpour tous les objets listés dansmanifest.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-idetcost-centerdé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
Où
/tmp/context_updates.jsoncontient les contextes d'objet suivants :{ "project-id": {"value": "project-A"}, "cost-center": {"value": "engineering"} }
Intégration à VPC Service Controls
VPC Service Controls offre une couche de sécurité supplémentaire pour les ressources d'opérations par lot de stockage. En plaçant des projets dans un périmètre de service, vous contribuez à 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 Cloud Audit Logs pour Cloud Storage. Utilisez Cloud Audit Logs avec Cloud Storage pour suivre ces transformations. Pour savoir comment activer les journaux d'audit, consultez Activer les journaux d'audit. Dans l'entrée de journal d'audit, un champ de métadonnées callUserAgent avec la valeur StorageBatchOperations indique que la transformation a été effectuée par des opérations par lot de stockage.
Étapes suivantes
- En savoir plus sur les ensembles de données Storage Insights