Crea e gestisci i job di operazioni batch

Questa pagina descrive come creare, visualizzare, elencare, annullare ed eliminare i job di operazioni batch di archiviazione. Descrive inoltre come utilizzare Cloud Audit Logs con i job di operazioni batch di archiviazione.

Prima di iniziare

Per creare e gestire i job di operazioni batch di archiviazione, completa i passaggi nelle sezioni seguenti.

Configura Storage Intelligence

Per creare e gestire i job di operazioni batch di archiviazione, configura Storage Intelligence nel bucket in cui vuoi eseguire il job.

Abilita l'API Storage Batch Operations

Abilita l'API Storage Batch Operations.

gcloud services enable storagebatchoperations.googleapis.com

Creare un manifest

Se vuoi utilizzare un manifest per la selezione degli oggetti, crea un file manifest. L'utilizzo di un manifest è uno dei modi per selezionare gli oggetti da elaborare in un job di operazioni batch di archiviazione.

Crea un job di operazioni batch di archiviazione

Questa sezione descrive come creare un job di operazioni batch di archiviazione.

Per ottenere le autorizzazioni necessarie per creare un job di operazioni batch di archiviazione, chiedi all'amministratore di concederti il ruolo IAM Storage Admin (roles/storage.admin) sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Console

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket che contiene gli oggetti su cui vuoi eseguire operazioni batch.

    Si apre la pagina Dettagli bucket con la scheda Oggetti selezionata.

  3. Fai clic su Crea operazioni batch.
  4. Nel riquadro Seleziona operazione, scegli il tipo di operazione:
    • Gestisci blocchi sugli oggetti: seleziona Blocco temporaneo o Blocco basato su eventi. Per saperne di più, consulta l'articolo sulle sospensioni degli oggetti.
    • Aggiorna metadati oggetto: per aggiungere metadati dell'oggetto, procedi nel seguente modo:
      • Per aggiungere metadati personalizzati, completa i seguenti passaggi:
        1. Nel campo Chiave, inserisci un nome per la chiave.
        2. Nel campo Valore, inserisci un valore per la chiave.
        3. (Facoltativo) Fai clic su + Aggiungi elemento per aggiungere altre coppie chiave-valore.
      • Per aggiornare i metadati a chiave fissa, completa i seguenti passaggi:
        1. Per espandere la sezione Aggiorna metadati a chiave fissa, fai clic sulla freccia di espansione.
        2. Nell'elenco Seleziona uno o più metadati da aggiornare, seleziona gli elementi dei metadati da modificare.
    • Aggiorna/Ruota chiave di crittografia: per utilizzare o aggiornare la chiave di crittografia per gli oggetti, procedi nel seguente modo:
      1. Nell'elenco Seleziona una chiave Cloud KMS, seleziona una chiave di crittografia gestita dal cliente (CMEK).
      2. (Facoltativo) Seleziona Cambia progetto per scegliere una chiave da un altro progetto o seleziona Inserisci chiave manualmente per compilare i dettagli.
    • Elimina oggetti: per eliminare gli oggetti, segui questi passaggi:
      1. Verifica se il controllo delle versioni degli oggetti è attivato.
      2. Se il controllo delle versioni degli oggetti è attivato, scegli una delle seguenti opzioni di eliminazione:

        • Seleziona Elimina tutte le versioni degli oggetti per rimuovere sia le versioni attive che quelle non correnti.
        • Seleziona Elimina definitivamente le versioni live per rimuovere solo la versione live.

        Se il controllo delle versioni degli oggetti non è abilitato, tutti gli oggetti selezionati per l'eliminazione vengono eliminati definitivamente.

  5. Fai clic su Avanti.
  6. Nel riquadro Assegna un nome all'operazione e specifica gli oggetti, procedi nel seguente modo:
    1. Nel campo Nome, inserisci un nome.
    2. (Facoltativo) Nel campo Descrizione, inserisci una descrizione.
    3. Nella sezione Specifica oggetti, definisci un criterio per elaborare gli oggetti dal bucket. Scegli una delle seguenti opzioni:
      • Seleziona tutti gli oggetti: include tutti gli oggetti nel bucket.
      • Seleziona gli oggetti utilizzando i filtri dei prefissi: per definire l'elenco di oggetti utilizzando i filtri dei prefissi, procedi nel seguente modo:
        1. Nel campo Inserisci i prefissi degli oggetti da includere, inserisci un prefisso.
        2. (Facoltativo) Fai clic su + Aggiungi prefisso per specificare altri prefissi.
      • Carica elenchi di oggetti utilizzando file manifest CSV: per utilizzare un file manifest per selezionare gli oggetti, procedi nel seguente modo:

        1. Carica il file CSV manifest in un bucket. Questo file deve contenere le intestazioni per Nome bucket, Chiave oggetto e Numero di generazione.
        2. Nell'elenco Seleziona la modalità del file manifest, scegli una delle seguenti opzioni:
          • Se selezioni Seleziona un file manifest da Cloud Storage, fai clic su Sfoglia nel campo Seleziona un file manifest da Cloud Storage. Nella finestra di dialogo Seleziona oggetto che viene visualizzata, vai al file CSV del manifest e fai clic su Seleziona.
          • Se selezioni Seleziona più file manifest utilizzando un carattere jolly, inserisci il percorso del file nel campo Inserisci la posizione del file manifest utilizzando un carattere jolly. Ad esempio: bucket-name/folder/manifest_*.
  7. Fai clic su Crea.

Riga di comando

Per definire l'elenco di oggetti per il job di operazioni batch, puoi scegliere una delle seguenti configurazioni di origine:

  • Progetto come origine: ha come target gli oggetti di un progetto utilizzando una configurazione del set di dati Storage Insights. Anziché specificare singoli bucket o prefissi, puoi specificare parametri di filtro avanzati, come --insights-dataset-config, --target-project, --bucket-filters e --object-filters. Per maggiori dettagli, vedi Creare un job utilizzando i filtri avanzati.
  • Bucket come origine: ha come target gli oggetti all'interno di bucket specifici. Devi specificare uno dei seguenti flag:
    • --bucket o --bucket-list per definire i bucket di destinazione.
    • Un file CSV manifest (--manifest-location) o prefissi degli oggetti (--included-object-prefixes) per definire gli oggetti di destinazione.
  1. Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Utilizza Google Cloud CLI versione 516.0.0 o successive.

  3. Per impostare il progetto predefinito, esegui il comando gcloud config set project:

    gcloud config set project PROJECT_ID

    Dove PROJECT_ID è l'ID del tuo progetto.

  4. (Facoltativo) Esegui un job di dry run. Prima di eseguire un job, ti consigliamo di eseguirlo in modalità dry run per verificare i criteri di selezione degli oggetti e controllare la presenza di errori. Il dry run non modifica alcun oggetto.

    Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs create con il flag --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-run

    Dove:

    • DRY_RUN_JOB_NAME è il nome del job di dry run delle operazioni batch di archiviazione.

    Gli altri parametri sono gli stessi del lavoro effettivo. Per saperne di più, consulta le descrizioni dei parametri.

    Per visualizzare i risultati del dry run, vedi Visualizzare i dettagli del job di operazioni batch di Storage.

  5. Dopo una prova dry run riuscita, esegui il comando 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_FLAG

    Dove i parametri sono i seguenti:

    • JOB_NAME è il nome del job di operazioni batch di archiviazione.

    • --bucket: BUCKET è il nome del bucket contenente gli oggetti che vuoi elaborare.

    • --bucket-list: BUCKET_LIST è un elenco separato da virgole di uno o più nomi di bucket contenenti gli oggetti che vuoi elaborare. Puoi specificare fino a 1000 bucket di qualsiasi progetto, a condizione che ogni bucket sia registrato in un piano di storage intelligence.

    • OBJECT_SELECTION_FLAG è uno dei seguenti flag che devi specificare:

      • --included-object-prefixes: specifica uno o più prefissi degli oggetti. Ad esempio:

        • Per far corrispondere un singolo prefisso, utilizza: --included-object-prefixes='prefix1'.
        • Per trovare corrispondenze con più prefissi, utilizza un elenco di prefissi separati da virgole: --included-object-prefixes='prefix1,prefix2'.
        • Per includere tutti gli oggetti, utilizza un prefisso vuoto: --included-object-prefixes=''.
      • --manifest-location: specifica la posizione del manifest. Ad esempio: gs://bucket_name/path/object_name.csv.

    • JOB_TYPE_FLAG è uno dei seguenti flag che devi specificare, a seconda del tipo di prestazione.

      • --delete-object: elimina uno o più oggetti.

        • Se il controllo delle versioni degli oggetti è abilitato per il bucket, gli oggetti correnti passano a uno stato non corrente e gli oggetti non correnti vengono ignorati.

        • Se il controllo delle versioni degli oggetti è disabilitato per il bucket, l'operazione di eliminazione elimina definitivamente gli oggetti e ignora gli oggetti non correnti.

      • --enable-permanent-object-deletion: elimina definitivamente gli oggetti. Utilizza questo flag insieme al flag --delete-object per eliminare definitivamente gli oggetti attivi e non correnti in un bucket, indipendentemente dalla configurazione del controllo delle versioni degli oggetti del bucket.

      • --rewrite-object: aggiorna le chiavi di crittografia gestite dal cliente per uno o più oggetti. Puoi anche utilizzare questo flag per modificare la classe di archiviazione dell'oggetto specificando la chiave storage-class. Le classi di archiviazione supportate includono STANDARD, NEARLINE, COLDLINE e ARCHIVE. Ad esempio, --rewrite-object=storage-class=NEARLINE.

      • --set-object-acls-from-file: applica patch agli elenchi di controllo dell'accesso (ACL) degli oggetti. Fornisci un file JSON o YAML con le concessioni da aggiungere o aggiornare per entità come allUsers o allAuthenticatedUsers. Ad esempio: --set-object-acls-from-file=acl-updates.yaml o --set-object-acls-from-file=acl-updates.json.

        La struttura del file YAML per gli aggiornamenti è la seguente:

        grants:
          - entity: allAuthenticatedUsers
            role: READER
          remove_entities:
          - allUsers
        

        La struttura del file JSON per gli aggiornamenti è la seguente:

        {
        "grants": [
          {
            "entity": "allAuthenticatedUsers",
            "role": "READER"
          }
        ],
        "remove_entities": [
          "allUsers"
        ]
        }
      • --put-object-event-based-hold: attiva Object holds basato sugli eventi.

      • --no-put-object-event-based-hold: disabilita il blocco di oggetti basato sugli eventi.

      • --put-object-temporary-hold: attiva i blocchi di oggetti temporanei.

      • --no-put-object-temporary-hold: disattiva i blocchi di oggetti temporanei.

        L'esempio seguente mostra come creare un job per aggiornare i metadati Content-Language a en per tutti gli oggetti elencati in 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

        L'esempio seguente mostra come creare un job che ha come target più bucket per aggiornare Content-Language a en-us:

        gcloud storage batch-operations jobs create my-job \
        --bucket-list=bucket1,bucket2 \
        --included-object-prefixes='' \
        --put-metadata=Content-Language=en-us
      • --put-metadata: aggiorna i metadati dell'oggetto. Specifica la coppia chiave-valore per i metadati dell'oggetto che vuoi modificare. Puoi specificare una o più coppie chiave-valore come elenco. Puoi anche impostare le configurazioni di conservazione degli oggetti utilizzando il flag --put-metadata. Per farlo, specifica i parametri di conservazione utilizzando i campi Retain-Until e Retention-Mode. Ad esempio,

        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

        Dove:

        • RETAIN_UNTIL_TIME è la data e l'ora, nel formato RFC 3339, fino alla quale l'oggetto viene conservato. Ad esempio 2025-10-09T10:30:00Z. Per impostare la configurazione della conservazione su un oggetto, devi abilitare la conservazione sul bucket che contiene l'oggetto.

        • RETENTION_MODE è la modalità di conservazione, Unlocked o Locked.

          Quando invii una richiesta di aggiornamento dei campi RETENTION_MODE e RETAIN_UNTIL_TIME, tieni presente quanto segue:

          • Per aggiornare la configurazione della conservazione degli oggetti, devi fornire valori non vuoti per i campi RETENTION_MODE e RETAIN_UNTIL_TIME; se ne imposti solo uno, si verifica un errore INVALID_ARGUMENT.
          • Puoi estendere il valore di RETAIN_UNTIL_TIME per gli oggetti in modalità Unlocked o Locked.
          • La conservazione degli oggetti deve essere in modalità Unlocked se vuoi eseguire le seguenti operazioni:
            • Riduci il valore di RETAIN_UNTIL_TIME.
            • Rimuovi la configurazione della conservazione. Per rimuovere la configurazione, devi fornire valori vuoti per i campi RETENTION_MODE e RETAIN_UNTIL_TIME.
          • Se ometti i campi RETENTION_MODE e RETAIN_UNTIL_TIME, la configurazione della conservazione rimane invariata.

      • --clear-all-object-custom-contexts: elimina tutti i contesti degli oggetti esistenti.

        L'esempio seguente mostra come creare un job per cancellare tutti i contesti degli oggetti per gli oggetti elencati in 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: rimuovi i contesti con chiavi specifiche. Puoi anche aggiornare contesti specifici e rimuovere le chiavi utilizzando sia il flag --clear-object-custom-contexts sia uno dei seguenti flag:

        • --update-object-custom-contexts: fornisci una mappa di coppie chiave-valore.

          L'esempio seguente mostra come creare un job per rimuovere il contesto con la chiave temp-id e aggiornare o inserire il contesto con le chiavi project-id e cost-center per tutti gli oggetti elencati in 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: fornisci il percorso di un file JSON o YAML con coppie chiave-valore.

          L'esempio seguente mostra come creare un job per elaborare gli oggetti definiti in manifest.csv. Il job esegue le seguenti operazioni:

          • Rimuove tutti i contesti con la chiave temp-id.

          • Aggiorna i contesti esistenti con le chiavi project-id e cost-center definite nel file /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

          Dove /tmp/context_updates.json contiene i seguenti contesti dell'oggetto:

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

Librerie client

C++

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

[](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

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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 JSON

Per definire l'elenco di oggetti per il job di operazioni batch, puoi scegliere una delle seguenti configurazioni di origine:

  • Progetto come origine: ha come target gli oggetti a livello di progetto utilizzando una configurazione projectSource. Anziché elencare singoli bucket o prefissi, specifica parametri di filtro avanzati per eseguire query dinamiche sui metadati di Storage Insights. Per saperne di più, consulta la scheda API JSON in Creare un job utilizzando i filtri avanzati.
  • Bucket come origine: ha come target gli oggetti all'interno di bucket specifici utilizzando una configurazione bucketList. Devi specificare i bucket di destinazione e un file CSV manifest (manifest_location) o i prefissi degli oggetti (include_object_prefixes).
  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Crea un file JSON contenente le impostazioni per il job di operazioni batch di archiviazione. Di seguito sono riportate le impostazioni comuni da includere:

    {
            "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_NAME è il nome del job di operazioni batch di archiviazione.

    • JOB_DESCRIPTION è la descrizione del job di operazioni batch di archiviazione.

    • BUCKET_NAME è il nome del bucket che contiene uno o più oggetti da elaborare.

    • Per specificare gli oggetti da elaborare, utilizza uno dei seguenti attributi nel file JSON:

      • MANIFEST_LOCATION è la posizione del manifest. Ad esempio: gs://bucket_name/path/object_name.csv.

      • OBJECT_PREFIXES è l'elenco separato da virgole contenente uno o più prefissi oggetto. Per trovare la corrispondenza con tutti gli oggetti, utilizza un elenco vuoto.

    • A seconda del job che vuoi elaborare, specifica una delle seguenti opzioni:

      • Elimina oggetti:

        "DeleteObject":
          {
          "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
          }

        Dove OBJECT_DELETION_VALUE è TRUE per eliminare gli oggetti.

      • Aggiorna la chiave di crittografia gestita dal cliente per gli oggetti:

        "RewriteObject":
          {
          "kms_key": KMS_KEY_VALUE
          }

        dove KMS_KEY_VALUE è il valore della chiave KMS dell'oggetto che vuoi aggiornare.

      • Aggiorna la classe di archiviazione per gli oggetti:

        "RewriteObject":
          {
          "storage_class": STORAGE_CLASS_VALUE
          }

        Dove STORAGE_CLASS_VALUE è la nuova classe di archiviazione a cui vuoi eseguire la transizione degli oggetti. Le classi di archiviazione supportate includono STANDARD, NEARLINE, COLDLINE e ARCHIVE.

      • Aggiorna i metadati dell'oggetto:

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

        Dove:

        • METADATA_KEY/VALUE è la coppia chiave/valore dei metadati dell'oggetto. Puoi specificare una o più coppie.
        • RETAIN_UNTIL_TIME è la data e l'ora, nel formato RFC 3339, fino alla quale l'oggetto viene conservato. Ad esempio 2025-10-09T10:30:00Z. Per impostare la configurazione di conservazione su un oggetto, devi abilitare la conservazione sul bucket che contiene l'oggetto.
        • RETENTION_MODE è la modalità di conservazione, Unlocked o Locked.

          Quando invii una richiesta di aggiornamento dei campi RETENTION_MODE e RETAIN_UNTIL_TIME, tieni presente quanto segue:

          • Per aggiornare la configurazione della conservazione degli oggetti, devi fornire valori non vuoti per i campi RETENTION_MODE e RETAIN_UNTIL_TIME; se ne imposti solo uno, si verifica un errore INVALID_ARGUMENT.
          • Puoi estendere il valore di RETAIN_UNTIL_TIME per gli oggetti in modalità Unlocked o Locked.
          • La conservazione degli oggetti deve essere in modalità Unlocked se vuoi eseguire le seguenti operazioni:
            • Riduci il valore di RETAIN_UNTIL_TIME.
            • Rimuovi la configurazione della conservazione. Per rimuovere la configurazione, devi fornire valori vuoti per i campi RETENTION_MODE e RETAIN_UNTIL_TIME.
          • Se ometti entrambi i campi RETENTION_MODE e RETAIN_UNTIL_TIME, la configurazione della conservazione rimane invariata.
        • Aggiorna blocchi di oggetti:

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

          Dove:

          • TEMPORARY_HOLD_VALUE viene utilizzato per attivare o disattivare il blocco oggetto temporaneo. Il valore 1 attiva la sospensione, mentre il valore 2 la disattiva.

          • EVENT_BASED_HOLD_VALUE viene utilizzato per attivare o disattivare il blocco oggetto basato su eventi. Un valore di 1 attiva la sospensione, mentre un valore di 2 la disattiva.

        • Aggiorna i contesti degli oggetti:

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

          Dove:

          • CONTEXT_KEY è la chiave del contesto dell'oggetto da inserire o aggiornare.
          • CONTEXT_VALUE è il valore del contesto dell'oggetto per la chiave.
          • CONTEXT_KEY_TO_CLEAR è la chiave da rimuovere.
          • CLEAR_ALL_VALUE è impostato su true per eliminare tutti i contesti degli oggetti esistenti.
        • Aggiorna gli elenchi di controllo dell'accesso (ACL) degli oggetti:

          "SetObjectAcls": {
              "accessControlsUpdates": {
                 "grants": [
                    { "entity": "ENTITY_NAME", "role": "ROLE_NAME" }
                 ],
                 "removeEntities": ["ENTITY_TO_REMOVE"]
              }
            }

          Dove:

          • ENTITY_NAME è l'entità a cui aggiungere o aggiornare l'accesso, ad esempio allUsers, allAuthenticatedUsers o un utente/gruppo specifico.
          • ROLE_NAME è il ruolo da concedere. Ad esempio, READER, OWNER.
          • ENTITY_TO_REMOVE è l'entità di cui vuoi rimuovere le credenziali.
      • DRY_RUN_VALUE è un valore booleano facoltativo. Imposta su true per eseguire il job in modalità dry run. Il valore predefinito è false.

      1. Utilizza curl per chiamare l'API JSON con una richiesta di POSTjob di operazioni batch di archiviazione:

        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"

        Dove:

        • JSON_FILE_NAME è il nome del file JSON.
        • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.
        • JOB_NAME è il nome del job di operazioni batch di archiviazione.

Recupera i dettagli del job di operazioni batch di archiviazione

Questa sezione descrive come ottenere i dettagli del job di operazioni batch di archiviazione.

Per ottenere le autorizzazioni necessarie per visualizzare un job di operazioni batch di archiviazione, chiedi all'amministratore di concederti il ruolo IAM Storage Admin (roles/storage.admin) sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Console

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket associato all'operazione.
  3. Nella pagina Dettagli bucket, fai clic sulla scheda Operazioni.
  4. Nell'elenco delle operazioni, fai clic sull'ID operazione del job che vuoi visualizzare.
  5. La pagina dei dettagli mostra le metriche per il job nella scheda Panoramica, ad esempio gli oggetti rilevati, elaborati e gli eventuali errori che si sono verificati.
  6. Nella tabella Riepilogo errori, esamina i dettagli dell'errore di esecuzione o fai clic su Visualizza in Cloud Logging per visualizzare i record.
  7. Per visualizzare le impostazioni di configurazione del job, fai clic sulla scheda Configurazione.

Riga di comando

  1. Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs describe.

    gcloud storage batch-operations jobs describe JOB_NAME

    Dove:

    JOB_NAME è il nome del job di operazioni batch di archiviazione.

    Quando esegui un dry run di un job, l'output include i seguenti campi:

    • totalObjectCount: mostra il numero di oggetti che corrispondono ai criteri di selezione.
    • errorSummaries: elenca eventuali errori rilevati durante il dry run, ad esempio problemi di autorizzazione o configurazioni non valide.
    • totalBytesFound: mostra la dimensione totale degli oggetti interessati. Questo campo viene visualizzato solo quando utilizzi i prefissi degli oggetti per la selezione degli oggetti.

    Se l'operazione va a buon fine, la risposta per il job di dry run è simile al seguente esempio:

      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
    

    Una risposta corretta al job omette il campo dryRun e restituisce le seguenti metriche nel campo counters:

    • Totale oggetti trovati.
    • Byte totali trovati quando si utilizzano i prefissi degli oggetti.
    • Trasformazioni degli oggetti riuscite.
    • Trasformazioni degli oggetti non riuscite, se applicabile.
    • Contesti degli oggetti creati, se applicabile.
    • Contesti degli oggetti eliminati, se applicabile.
    • Contesti degli oggetti aggiornati, se applicabile. Questo contatore tiene traccia degli aggiornamenti apportati alle chiavi di contesto esistenti.

    La risposta per l'esecuzione di un job effettivo è simile al seguente esempio:

      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
      

Librerie client

C++

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

[](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

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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 JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta di GETjob di operazioni batch di archiviazione:

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

    Dove:

    • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.
    • JOB_NAME è il nome del job di operazioni batch di archiviazione.

    Quando esegui un dry run di un job, l'output include i seguenti campi:

    • totalObjectCount: mostra il numero di oggetti che corrispondono ai criteri di selezione.
    • errorSummaries: elenca eventuali errori rilevati durante il dry run, ad esempio problemi di autorizzazione o configurazioni non valide.
    • totalBytesFound: mostra la dimensione totale degli oggetti interessati. Questo campo viene visualizzato solo quando utilizzi i prefissi degli oggetti per la selezione degli oggetti.

    Se l'operazione ha esito positivo, la risposta per il dry run è simile al seguente esempio:

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

    Una risposta corretta al job omette il campo dryRun e restituisce le seguenti metriche nel campo counters:

    • Totale oggetti trovati.
    • Byte totali trovati quando si utilizzano i prefissi degli oggetti.
    • Trasformazioni degli oggetti riuscite.
    • Trasformazioni degli oggetti non riuscite, se applicabile.
    • Contesti degli oggetti creati, se applicabile.
    • Contesti degli oggetti eliminati, se applicabile.
    • Contesti degli oggetti aggiornati, se applicabile. Questo contatore tiene traccia degli aggiornamenti apportati alle chiavi di contesto esistenti.

      La risposta per l'esecuzione di un job effettivo è simile al seguente esempio:

      {
      "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": [
                ""
              ]
            }
          }
        ]
      }
      }
      

Elenca operazioni sui bucket

Per i job che includono più bucket, puoi visualizzare l'avanzamento e lo stato delle operazioni sui singoli bucket. Per elencare le operazioni eseguite sui bucket per un job specifico, esegui il comando gcloud storage batch-operations bucket-operations list:

gcloud storage batch-operations bucket-operations list --job=JOB_NAME

Puoi anche filtrare l'elenco in base a bucket specifici utilizzando il flag --buckets:

gcloud storage batch-operations bucket-operations list --job=JOB_NAME --buckets=BUCKET_NAME_LIST

Il seguente esempio mostra come elencare le operazioni per bucket1 e bucket2 per il job my-job:

gcloud storage batch-operations bucket-operations list --job=my-job --buckets=bucket1,bucket2

Dove:

  • JOB_NAME è il nome univoco del job di operazioni batch di archiviazione che hai creato. Ad esempio, my-job.
  • BUCKET_NAME_LIST è un elenco separato da virgole di nomi di bucket, senza spazi tra i nomi. Ad esempio, bucket1,bucket2.

Descrivi un'operazione sul bucket

Per visualizzare i dettagli di una specifica operazione sul bucket, puoi utilizzare uno dei seguenti metodi:

  • Utilizza il comando gcloud storage batch-operations bucket-operations describe con il flag del nome della risorsa dell'operazione:

    gcloud alpha storage batch-operations bucket-operations describe BUCKET_OPERATION_RESOURCE_NAME

    Dove:

    • BUCKET_OPERATION_RESOURCE_NAME è il percorso completo della risorsa dell'operazione sul bucket. Ad esempio, projects/my-project/locations/global/jobs/my-job/bucketOperations/bo-1.
  • Utilizza il comando gcloud storage batch-operations bucket-operations describe con i flag ID operazione bucket e ID job:

    gcloud alpha storage batch-operations bucket-operations describe BUCKET_OPERATION_ID --job=JOB_NAME

    Dove:

    • BUCKET_OPERATION_ID è l'ID dell'operazione sul bucket.
    • JOB_NAME è il nome univoco del job di operazioni batch di archiviazione che hai creato. Ad esempio, my-job.

Elenca job di operazioni batch di archiviazione

Questa sezione descrive come elencare i job di operazioni batch di archiviazione all'interno di un progetto.

Per ottenere le autorizzazioni necessarie per elencare i job Storage Batch Operations, chiedi all'amministratore di concederti il ruolo IAM Storage Admin (roles/storage.admin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Console

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket associato all'operazione.
  3. Nella pagina Dettagli bucket, fai clic sulla scheda Operazioni. La pagina Operazioni mostra un elenco delle operazioni attive in esecuzione.

Riga di comando

  1. Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs list.

    gcloud storage batch-operations jobs list

Librerie client

C++

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

[](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

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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 JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta di LIST job di operazioni batch di archiviazione:

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

    Dove:

    PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.

Annulla un job di operazioni batch di archiviazione

Questa sezione descrive come annullare un job di operazioni batch di archiviazione all'interno di un progetto.

Per ottenere le autorizzazioni necessarie per annullare un job di operazioni batch di archiviazione, chiedi all'amministratore di concederti il ruolo IAM Storage Admin (roles/storage.admin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Console

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket associato all'operazione batch di archiviazione da annullare.

  3. Fai clic sulla scheda Operazioni. Questa scheda mostra un elenco di job di operazioni batch. Puoi annullare solo i job in corso.

  4. Nell'elenco delle operazioni, seleziona uno o più job da annullare, quindi fai clic su Annulla.

Riga di comando

  1. Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs cancel.

    gcloud storage batch-operations jobs cancel JOB_NAME

    Dove:

    JOB_NAME è il nome del job di operazioni batch di archiviazione.

Librerie client

C++

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

[](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

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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 JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta CANCEL di un job di operazioni batch di archiviazione:

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

    Dove:

    • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.

    • JOB_NAME è il nome del job di operazioni batch di archiviazione.

Elimina un job di operazioni batch di archiviazione

Questa sezione descrive come eliminare un job di operazioni batch di archiviazione.

Per ottenere le autorizzazioni necessarie per eliminare un job di operazioni batch di archiviazione, chiedi all'amministratore di concederti il ruolo IAM Storage Admin (roles/storage.admin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Console

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket associato all'operazione batch di archiviazione da eliminare.

  3. Fai clic sulla scheda Operazioni. Questa scheda mostra un elenco di job di operazioni batch. Puoi eliminare solo i job non in esecuzione, ad esempio quelli riusciti, non riusciti o annullati.

  4. Nell'elenco delle operazioni, seleziona uno o più job da eliminare, quindi fai clic su Elimina.

Riga di comando

  1. Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs delete.

    gcloud storage batch-operations jobs delete JOB_NAME

    Dove:

    JOB_NAME è il nome del job di operazioni batch di archiviazione.

Librerie client

C++

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

[](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

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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 JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta DELETE di un job di operazioni batch di archiviazione:

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

    Dove:

    • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.

    • JOB_NAME è il nome del job di operazioni batch di archiviazione.

Crea un job di operazioni batch di archiviazione utilizzando i set di dati Storage Insights

Per eseguire un job di operazioni batch sugli oggetti elencati in un set di dati, seleziona una delle seguenti opzioni:

  • Utilizza filtri avanzati: filtra gli oggetti in modo dinamico a livello di progetto direttamente nel comando Google Cloud CLI.

    I set di dati di Storage Insights vengono creati da snapshot periodici point-in-time dei metadati di archiviazione. Ogni snapshot ha un'ora di acquisizione che mostra quando sono stati acquisiti i metadati. Quando esegui un job batch utilizzando filtri avanzati, questo orario dello snapshot determina quali oggetti e versioni vengono elaborati. Per impostazione predefinita, le operazioni batch di archiviazione selezionano automaticamente l'ora dell'ultimo snapshot. Per evitare operazioni su dati obsoleti, la creazione del job non va a buon fine se lo snapshot selezionato risale a più di due giorni prima. Per informazioni su come risolvere questo errore, vedi Risoluzione dei problemi relativi alle operazioni batch di Storage.

  • Utilizza un file manifest: genera un file manifest CSV eseguendo una query BigQuery e poi forniscilo al job.

I metodi sono descritti nelle sezioni seguenti.

Utilizzare i filtri avanzati

Anziché creare un file manifest, puoi utilizzare i filtri Common Expression Language (CEL) per selezionare gli oggetti direttamente in base ai campi del set di dati Storage Insights. Puoi eseguire job in più bucket di un progetto. Quando utilizzi i filtri del set di dati per la selezione degli oggetti, le operazioni batch di archiviazione hanno come target gli oggetti attivi e attuali al momento dello snapshot del set di dati selezionato. Di conseguenza, il job include solo gli oggetti che hanno un valore NULL sia per softDeleteTime che per timeDeleted al momento dello snapshot.

Riga di comando

  1. Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Esegui il comando 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_FLAG

    Dove:

    • JOB_NAME è il nome del job di operazioni batch di archiviazione.
    • INSIGHTS_DATASET_CONFIG_RESOURCE_NAME: il nome della risorsa della configurazione del set di dati. Ad esempio: projects/{project-id}/locations/{location-id}/datasetConfigs/{dataset_config_id}. Devi specificare questo parametro prima di utilizzare i flag --bucket-filters e --object-filters.
    • TARGET_PROJECT: l'ID progetto o il numero di progetto associato alle risorse di destinazione.
    • BUCKET_FILTER_CEL e OBJECT_FILTER_CEL (facoltativo): le espressioni di filtro CEL utilizzate per selezionare gli oggetti. Di seguito sono riportati alcuni esempi:
      • --bucket-filters="name in ['bucket-1', 'bucket-2']"
      • --object-filters="size >= 5000 && name.endsWith('.pdf')" Per informazioni su campi, operatori e funzioni supportati, consulta il riferimento ai filtri CEL.
    • TARGET_LOCATIONS (Facoltativo): un elenco di posizioni Cloud Storage utilizzate per restringere l'ambito del job. Ad esempio: us,us-central1,us-east4. Utilizza questo parametro per escludere le località interessate da un'interruzione del servizio. Se viene specificato solo TARGET_LOCATIONS e TARGET_SNAPSHOT_TIME viene omesso, il job sceglie automaticamente il timestamp dello snapshot più recente compilato correttamente nelle visualizzazioni degli attributi di oggetti e bucket in tutte le località specificate.
    • TARGET_SNAPSHOT_TIME (facoltativo): il timestamp UTC dello snapshot del set di dati da utilizzare, in formato RFC 3339. Ad esempio, 2026-05-03T16:00:00Z. Questo snapshot deve esistere in tutte le visualizzazioni degli attributi di bucket e oggetti. Se specifichi questo parametro, devi specificare anche il parametro TARGET_LOCATIONS.
    • DRY_RUN_JOB_ID: l'identificatore di un job di prova eseguito in precedenza. Se specifichi questo parametro, non puoi specificare altri parametri di selezione degli oggetti, inclusi --insights-dataset-config, --target-project, --bucket-filters, --object-filters, --target-locations e --target-snapshot-time. Il job attivo esegue il polling di tutti i criteri di selezione direttamente dal job di prova.
    • JOB_TYPE_FLAG: il flag corrispondente all'operazione collettiva che vuoi eseguire, ad esempio --put-metadata o --delete-object.

API JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Crea un file di configurazione JSON che specifichi i filtri del set di dati e le impostazioni delle operazioni collettive. Ad esempio:

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

    Dove:

    • JOB_DESCRIPTION è la descrizione del lavoro.
      • TARGET_PROJECT è l'ID progetto o il numero di progetto associato agli oggetti di destinazione.
    • INSIGHTS_DATASET_CONFIG_RESOURCE_NAME è il nome completo della risorsa della configurazione del set di dati (ad esempio, projects/{project-id}/locations/{location-id}/datasetConfigs/{dataset_config_id}).
    • BUCKET_FILTER_CEL è l'espressione di filtro CEL per i bucket. Ad esempio, name in ['bucket-1', 'bucket-2']. Per informazioni dettagliate su parole chiave, campi e operatori supportati, consulta il riferimento ai filtri CEL.
    • OBJECT_FILTER_CEL è l'espressione di filtro CEL per gli oggetti. Ad esempio, size >= 5000 && name.endsWith('.pdf').
    • snapshotTime (facoltativo): un timestamp UTC specifico nel formato RFC 3339 (ad esempio, "2026-05-03T16:00:00Z") che specifica lo snapshot del set di dati da utilizzare. Questo snapshot deve esistere sia nelle visualizzazioni del bucket che del set di dati degli oggetti in tutte le località di destinazione. Se specifichi questo campo, devi specificare anche il campo targetLocations.
    • targetLocations (facoltativo): un oggetto JSON che specifica un elenco di posizioni Cloud Storage (ad esempio ["us", "us-central1", "us-east4"]) per filtrare l'ambito del job. Se le dipendenze subiscono un'interruzione in località specifiche, puoi limitare il job a località specifiche. Se viene specificato solo targetLocations e snapshotTime viene omesso, il job sceglie automaticamente il timestamp dello snapshot più recente compilato correttamente nelle visualizzazioni degli attributi di oggetti e bucket in tutte le località specificate.
    • OBJECT_DELETION_VALUE è il valore booleano che attiva/disattiva l'eliminazione definitiva. Ad esempio: true o false.
  3. Invia una richiesta POST utilizzando cURL per eseguire il 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"

    Dove:

    • JSON_FILE_NAME è il nome del file JSON.
    • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.
    • JOB_NAME è il nome del job di operazioni batch di archiviazione.

Utilizzare un file manifest

Per ottenere le autorizzazioni necessarie per creare un job di operazioni batch di archiviazione, chiedi all'amministratore di concederti il ruolo IAM Storage Admin (roles/storage.admin) sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Creare un manifest utilizzando i set di dati Storage Insights

Puoi creare il manifest per il job di operazioni batch di archiviazione estraendo i dati da BigQuery. Per farlo, devi interrogare il set di dati collegato, esportare i dati risultanti come file CSV e salvarli in un bucket Cloud Storage. Il job di operazioni batch di archiviazione può quindi utilizzare questo file CSV come manifest.

L'esecuzione della seguente query SQL in BigQuery su una vista del set di dati Storage Insights recupera gli oggetti di dimensioni superiori a 1 KiB denominati 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
  

Dove:

  • URI è l'URI del bucket che contiene il manifest. Ad esempio, gs://bucket_name/path_to_csv_file/*.csv. Quando utilizzi il carattere jolly *.csv, BigQuery esporta il risultato in più file CSV.
  • OVERWRITE_VALUE è un valore booleano. Se impostato su true, l'operazione di esportazione sovrascrive i file esistenti nella posizione specificata.
  • DATASET_VIEW_NAME è il nome completo della visualizzazione del set di dati Storage Insights nel formato PROJECT_ID.DATASET_ID.VIEW_NAME. Per trovare il nome del set di dati, visualizza il set di dati collegato.

    Dove:

    • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.
    • DATASET_ID è il nome del set di dati. Ad esempio, objects-deletion-dataset.
    • VIEW_NAME è il nome della visualizzazione del set di dati. Ad esempio, bucket_attributes_view.
  • BUCKET_NAME è il nome del bucket. Ad esempio, my-bucket.

  • SNAPSHOT_TIME è l'ora dello snapshot della visualizzazione del set di dati Storage Insights. Ad esempio, 2024-09-10T00:00:00Z.

Crea un job batch di operazioni di archiviazione utilizzando un file manifest

Per creare un job di operazioni batch di archiviazione per elaborare gli oggetti contenuti nel manifest, completa i seguenti passaggi:

Console

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket che contiene gli oggetti su cui vuoi eseguire operazioni batch.

    Si apre la pagina Dettagli bucket con la scheda Oggetti selezionata.

  3. Fai clic su Crea operazioni batch.
  4. Nel riquadro Seleziona operazione, scegli il tipo di operazione:
    • Gestisci blocchi sugli oggetti: seleziona Blocco temporaneo o Blocco basato su eventi. Per saperne di più, consulta l'articolo sulle sospensioni degli oggetti.
    • Aggiorna metadati oggetto: per aggiungere metadati dell'oggetto, procedi nel seguente modo:
      • Per aggiungere metadati personalizzati, completa i seguenti passaggi:
        1. Nel campo Chiave, inserisci un nome per la chiave.
        2. Nel campo Valore, inserisci un valore per la chiave.
        3. (Facoltativo) Fai clic su + Aggiungi elemento per aggiungere altre coppie chiave-valore.
      • Per aggiornare i metadati a chiave fissa, completa i seguenti passaggi:
        1. Per espandere la sezione Aggiorna metadati a chiave fissa, fai clic sulla freccia di espansione.
        2. Nell'elenco Seleziona uno o più metadati da aggiornare, seleziona gli elementi dei metadati da modificare.
    • Aggiorna/Ruota chiave di crittografia: per utilizzare o aggiornare la chiave di crittografia per gli oggetti, procedi nel seguente modo:
      1. Nell'elenco Seleziona una chiave Cloud KMS, seleziona una chiave di crittografia gestita dal cliente (CMEK).
      2. (Facoltativo) Seleziona Cambia progetto per scegliere una chiave da un altro progetto o seleziona Inserisci chiave manualmente per compilare i dettagli.
    • Elimina oggetti: per eliminare gli oggetti, segui questi passaggi:
      1. Verifica se il controllo delle versioni degli oggetti è attivato.
      2. Se il controllo delle versioni degli oggetti è attivato, scegli una delle seguenti opzioni di eliminazione:

        • Seleziona Elimina tutte le versioni degli oggetti per rimuovere sia le versioni attive che quelle non correnti.
        • Seleziona Elimina definitivamente le versioni live per rimuovere solo la versione live.

        Se il controllo delle versioni degli oggetti non è abilitato, tutti gli oggetti selezionati per l'eliminazione vengono eliminati definitivamente.

  5. Fai clic su Avanti.
  6. Nel riquadro Assegna un nome all'operazione e specifica gli oggetti, procedi nel seguente modo:
    1. Nel campo Nome, inserisci un nome.
    2. (Facoltativo) Nel campo Descrizione, inserisci una descrizione.
    3. Nella sezione Specifica oggetti, seleziona Carica elenchi di oggetti utilizzando file manifest CSV, quindi procedi nel seguente modo:

      1. Carica il file CSV manifest in un bucket. Questo file deve contenere le intestazioni per Nome bucket, Chiave oggetto e Numero di generazione.
      2. Nell'elenco Seleziona la modalità del file manifest, scegli una delle seguenti opzioni:
        • Se selezioni Seleziona un file manifest da Cloud Storage, fai clic su Sfoglia nel campo Seleziona un file manifest da Cloud Storage. Nella finestra di dialogo Seleziona oggetto che viene visualizzata, vai al file CSV del manifest e fai clic su Seleziona.
        • Se selezioni Seleziona più file manifest utilizzando un carattere jolly, inserisci il percorso del file nel campo Inserisci la posizione del file manifest utilizzando un carattere jolly. Ad esempio: bucket-name/folder/manifest_*.
  7. Fai clic su Crea.

Riga di comando

  1. Nella console Google Cloud , attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Nell'ambiente di sviluppo, esegui il comando 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_FLAG

    Dove:

    • JOB_NAME è il nome del job di operazioni batch di archiviazione.

    • SOURCE_BUCKET è il nome del bucket che contiene gli oggetti da elaborare. Ad esempio, my-bucket.

    • SOURCE_BUCKET_LIST è un elenco separato da virgole di uno o più nomi di bucket che contengono gli oggetti da elaborare. Ad esempio, bucket1,bucket2.

    • URI è l'URI del bucket che contiene il manifest. Ad esempio, gs://bucket_name/path_to_csv_file/*.csv. Quando utilizzi il carattere jolly *.csv, BigQuery esporta il risultato in più file CSV.

    • JOB_TYPE_FLAG è uno dei seguenti flag, a seconda del tipo di prestazione.

      • --delete-object: elimina uno o più oggetti.

      • --put-metadata: aggiorna i metadati dell'oggetto. I metadati dell'oggetto vengono archiviati come coppie chiave-valore. Specifica la coppia chiave-valore per i metadati che vuoi modificare. Puoi specificare una o più coppie chiave-valore come elenco. Puoi anche fornire configurazioni di conservazione degli oggetti utilizzando il flag --put-metadata.

      • --rewrite-object: aggiorna le chiavi di crittografia gestite dal cliente per uno o più oggetti. Puoi anche utilizzare questo flag per modificare la classe di archiviazione dell'oggetto specificando la chiave storage-class. Le classi di archiviazione supportate includono STANDARD, NEARLINE, COLDLINE e ARCHIVE. Ad esempio: --rewrite-object=storage-class=NEARLINE.

      • --set-object-acls-from-file: applica patch agli elenchi di controllo dell'accesso (ACL) degli oggetti. Fornisci il percorso di un file JSON o YAML con le concessioni da aggiungere o aggiornare per entità come allUsers o allAuthenticatedUsers. Ad esempio: --set-object-acls-from-file=acl-updates.yaml.

      • --put-object-event-based-hold: attiva Object holds basato sugli eventi.

      • --no-put-object-event-based-hold: disabilita il blocco di oggetti basato sugli eventi.

      • --put-object-temporary-hold: attiva i blocchi di oggetti temporanei.

      • --no-put-object-temporary-hold: disattiva i blocchi di oggetti temporanei.

      • --clear-all-object-custom-contexts: elimina tutti i contesti degli oggetti esistenti.

        L'esempio seguente mostra come creare un job per cancellare tutti i contesti degli oggetti per gli oggetti elencati in 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: rimuovi i contesti con chiavi specifiche. Puoi anche aggiornare contesti specifici e rimuovere le chiavi utilizzando sia il flag --clear-object-custom-contexts sia uno dei seguenti flag:

        • --update-object-custom-contexts: fornisci una mappa di coppie chiave-valore.

          L'esempio seguente mostra come creare un job per rimuovere il contesto con la chiave temp-id e aggiornare o inserire il contesto con le chiavi project-id e cost-center per tutti gli oggetti elencati in 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: fornisci il percorso di un file JSON o YAML con coppie chiave-valore.

          L'esempio seguente mostra come creare un job per elaborare gli oggetti definiti in manifest.csv. Il job esegue le seguenti operazioni:

          • Rimuove tutti i contesti con la chiave temp-id.

          • Aggiorna i contesti esistenti con le chiavi project-id e cost-center definite nel file /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

          Dove /tmp/context_updates.json contiene i seguenti contesti dell'oggetto:

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

Integrazione con i Controlli di servizio VPC

I Controlli di servizio VPC forniscono un livello aggiuntivo di sicurezza per le risorse delle operazioni batch di archiviazione. Se inserisci i progetti all'interno di un perimetro di servizio, contribuisci a proteggere risorse e servizi da richieste provenienti dall'esterno del perimetro. Per saperne di più sui dettagli del perimetro di servizio dei Controlli di servizio VPC per le operazioni batch di archiviazione, consulta Prodotti supportati e limitazioni.

Utilizzare Cloud Audit Logs per i job di operazioni batch di archiviazione

I job di operazioni batch di archiviazione registrano le trasformazioni sugli oggetti Cloud Storage in Cloud Audit Logs per Cloud Storage. Utilizza Cloud Audit Logs con Cloud Storage per monitorare queste trasformazioni. Per informazioni dettagliate su come attivare gli audit log, vedi Attivazione degli audit log. Nella voce di log di controllo, un campo dei metadati callUserAgent con il valore StorageBatchOperations indica che la trasformazione è stata eseguita dalle operazioni batch di archiviazione.

Passaggi successivi