Crea y administra trabajos de operaciones por lotes

En esta página, se describe cómo crear, ver, enumerar, cancelar y borrar trabajos de operaciones por lotes de almacenamiento. También se describe cómo usar los registros de auditoría de Cloud con trabajos de operaciones por lotes de almacenamiento.

Antes de comenzar

Para crear y administrar trabajos de operaciones por lotes de almacenamiento, completa los pasos que se indican en las siguientes secciones.

Configura Storage Intelligence

Para crear y administrar trabajos de operaciones por lotes de almacenamiento, configura Storage Intelligence en el bucket en el que deseas ejecutar el trabajo.

Configura Google Cloud CLI

Debes usar la versión 516.0.0 o posterior de Google Cloud CLI.

Configura el proyecto predeterminado

Configura el proyecto en el que deseas crear el trabajo de operaciones por lotes de almacenamiento.

gcloud config set project PROJECT_ID

En el ejemplo anterior, PROJECT_ID es el ID de tu proyecto.

Habilitar API

Habilita la API de Storage batch operations.

gcloud services enable storagebatchoperations.googleapis.com

Crea un manifiesto

Para usar un manifiesto para la selección de objetos, crea uno.

Crea un trabajo de operaciones por lotes de almacenamiento

En esta sección, se describe cómo crear un trabajo de operaciones por lotes de almacenamiento.

Para obtener los permisos que necesitas para crear un trabajo de operaciones por lotes de almacenamiento, pídele a tu administrador que te otorgue el rol de IAM Administrador de almacenamiento (roles/storage.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear un trabajo de operaciones por lotes de almacenamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear un trabajo de operaciones por lotes de almacenamiento:

  • Crea un trabajo de operaciones por lotes de almacenamiento: storagebatchoperations.jobs.create
  • Ejecuta el trabajo de operaciones por lotes de almacenamiento para borrar objetos: storage.objects.delete
  • Ejecuta el trabajo de operaciones por lotes de almacenamiento para actualizar los metadatos del objeto, actualizar la clave de encriptación administrada por el cliente del objeto, actualizar el contexto del objeto o actualizar la conservación del objeto: storage.objects.update

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Línea de comandos

  1. En la consola de Google Cloud , activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Ejecuta un trabajo de prueba de validación (opcional). Antes de ejecutar cualquier trabajo, te recomendamos que lo ejecutes en modo de prueba para verificar los criterios de selección de objetos y comprobar si hay errores. La ejecución de prueba no modifica ningún objeto.

    En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs create con la marca --dry-run:

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

    La ejecución de prueba usa los mismos parámetros que el trabajo real. Para obtener más detalles, consulta las descripciones de los parámetros.

    Para ver los resultados de la ejecución de prueba, consulta Obtén detalles del trabajo de operaciones por lotes de almacenamiento.

  3. Después de una ejecución de prueba exitosa, ejecuta el comando gcloud storage batch-operations jobs create.

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

    Los parámetros son los siguientes:

    • DRY_RUN_JOB_NAME es el nombre del trabajo de simulación de las operaciones por lotes de almacenamiento.
    • JOB_NAME es el nombre del trabajo de operaciones por lotes de almacenamiento.

    • BUCKET_NAME es el nombre del bucket que contiene uno o más objetos que deseas procesar.

    • OBJECT_SELECTION_FLAG es una de las siguientes marcas que debes especificar:

      • --included-object-prefixes: Especifica uno o más prefijos de objetos. Por ejemplo:

        • Para que coincida un solo prefijo, usa --included-object-prefixes='prefix1'.
        • Para hacer coincidir varios prefijos, usa una lista de prefijos separada por comas: --included-object-prefixes='prefix1,prefix2'.
        • Para incluir todos los objetos, usa un prefijo vacío: --included-object-prefixes=''.
      • --manifest-location: Especifica la ubicación del manifiesto. Por ejemplo, gs://bucket_name/path/object_name.csv.

    • JOB_TYPE_FLAG es una de las siguientes marcas que debes especificar, según el tipo de trabajo.

      • --delete-object: Borra uno o más objetos.

        • Si el control de versiones de objetos está habilitado para el bucket, los objetos actuales pasan a un estado no actual y se omiten los objetos no actuales.

        • Si el control de versiones de objetos está inhabilitado para el bucket, la operación de borrado borra los objetos de forma permanente y omite los objetos no actuales.

      • --enable-permanent-object-deletion: Borra objetos de forma permanente. Usa esta marca junto con la marca --delete-object para borrar de forma permanente los objetos activos y no actuales de un bucket, independientemente de la configuración del control de versiones de objetos del bucket.

      • --rewrite-object: Actualiza las claves de encriptación administradas por el cliente para uno o más objetos.

      • --put-object-event-based-hold: Habilita las retenciones de objetos basadas en eventos.

      • --no-put-object-event-based-hold: Inhabilita las retenciones de objetos basadas en eventos.

      • --put-object-temporary-hold: Habilita las retenciones de objetos temporales.

      • --no-put-object-temporary-hold: Inhabilita las retenciones de objetos temporales.

        En el siguiente ejemplo, se muestra cómo crear un trabajo para actualizar los metadatos de Content-Language a en para todos los objetos que se indican en manifest.csv.

        gcloud storage batch-operations jobs create my-job \
        --bucket=my-bucket \
        --manifest-location=gs://my-bucket/manifest.csv \
        --put-metadata=Content-Language=en
      • --put-metadata: Actualiza los metadatos del objeto. Especifica el par clave-valor para los metadatos del objeto que deseas modificar. Puedes especificar uno o más pares clave-valor como una lista. También puedes establecer configuraciones de retención de objetos con la marca --put-metadata. Para ello, especifica los parámetros de retención con los campos Retain-Until y Retention-Mode. Por ejemplo:

        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

        Aquí:

        • RETAIN_UNTIL_TIME es la fecha y hora, en formato RFC 3339, hasta la cual se retiene el objeto. Por ejemplo, 2025-10-09T10:30:00Z. Para establecer la configuración de retención en un objeto, deberás habilitar la retención en el bucket que contiene el objeto.

        • RETENTION_MODE es el modo de conservación, que puede ser Unlocked o Locked.

          Cuando envíes una solicitud para actualizar los campos RETENTION_MODE y RETAIN_UNTIL_TIME, ten en cuenta lo siguiente:

          • Para actualizar la configuración de retención de objetos, debes proporcionar valores no vacíos para los campos RETENTION_MODE y RETAIN_UNTIL_TIME. Si solo estableces uno, se generará un error INVALID_ARGUMENT.
          • Puedes extender el valor de RETAIN_UNTIL_TIME para los objetos en los modos Unlocked o Locked.
          • La retención de objetos debe estar en modo Unlocked si deseas hacer lo siguiente:
            • Reduce el valor de RETAIN_UNTIL_TIME.
            • Quita la configuración de retención. Para quitar la configuración, deberás proporcionar valores vacíos para los campos RETENTION_MODE y RETAIN_UNTIL_TIME.
          • Si omites los campos RETENTION_MODE y RETAIN_UNTIL_TIME, la configuración de retención no se modificará.

      • --clear-all-object-custom-contexts: Borra todos los contextos de objetos existentes.

        En el siguiente ejemplo, se muestra cómo crear un trabajo para borrar todos los contextos de objetos que se enumeran en 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: Quita contextos con claves específicas. También puedes actualizar contextos específicos y quitar claves usando la marca --clear-object-custom-contexts y una de las siguientes marcas:

        • --update-object-custom-contexts: Proporciona un mapa de pares clave-valor.

          En el siguiente ejemplo, se muestra cómo crear un trabajo para quitar el contexto con la clave temp-id y actualizar o insertar el contexto con las claves project-id y cost-center para todos los objetos que se enumeran en 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: Proporciona la ruta de acceso a un archivo JSON o YAML con pares clave-valor.

          En el siguiente ejemplo, se muestra cómo crear un trabajo para procesar objetos definidos en manifest.csv. El trabajo hace lo siguiente:

          • Quita todos los contextos con la clave temp-id.

          • Actualiza los contextos existentes con las claves project-id y cost-center definidas en el archivo /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

          En el ejemplo anterior, /tmp/context_updates.json contiene los siguientes contextos de objeto:

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

Bibliotecas cliente

C++

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage de PHP.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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 de REST

API de JSON

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Crea un archivo JSON que contenga la configuración del trabajo de operaciones por lotes de almacenamiento. A continuación, se indican las opciones de configuración comunes que puedes incluir:

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

    Aquí:

    • JOB_NAME es el nombre del trabajo de operaciones por lotes de almacenamiento.

    • JOB_DESCRIPTION es la descripción del trabajo de operaciones por lotes de almacenamiento.

    • BUCKET_NAME es el nombre del bucket que contiene uno o más objetos que deseas procesar.

    • Para especificar los objetos que deseas procesar, usa cualquiera de los siguientes atributos en el archivo JSON:

      • MANIFEST_LOCATION es la ubicación del manifiesto. Por ejemplo, gs://bucket_name/path/object_name.csv.

      • OBJECT_PREFIXES es la lista separada por comas que contiene uno o más prefijos de objetos. Para que coincidan todos los objetos, usa una lista vacía.

    • Según el trabajo que quieras procesar, especifica una de las siguientes opciones:

      • Borra objetos:

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        Aquí, OBJECT_DELETION_VALUE es TRUE para borrar objetos.

      • Actualiza la clave de encriptación administrada por el cliente para los objetos:

        "RewriteObject":
        {
        "kms_key": KMS_KEY_VALUE
        }

        Aquí KMS_KEY_VALUE es el valor de la clave de KMS del objeto que deseas actualizar.

      • Actualiza los metadatos del objeto:

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

        Aquí:

        • METADATA_KEY/VALUE es el par clave-valor de los metadatos del objeto. Puedes especificar uno o más pares.
        • RETAIN_UNTIL_TIME es la fecha y hora, en formato RFC 3339, hasta la cual se retiene el objeto. Por ejemplo, 2025-10-09T10:30:00Z Para establecer la configuración de retención en un objeto, deberás habilitar la retención en el bucket que contiene el objeto.
        • RETENTION_MODE es el modo de retención, que puede ser Unlocked o Locked.

          Cuando envíes una solicitud para actualizar los campos RETENTION_MODE y RETAIN_UNTIL_TIME, ten en cuenta lo siguiente:

          • Para actualizar la configuración de retención de objetos, debes proporcionar valores no vacíos para los campos RETENTION_MODE y RETAIN_UNTIL_TIME. Si solo estableces uno, se generará un error INVALID_ARGUMENT.
          • Puedes extender el valor de RETAIN_UNTIL_TIME para los objetos en los modos Unlocked o Locked.
          • La retención de objetos debe estar en modo Unlocked si deseas hacer lo siguiente:
            • Reduce el valor de RETAIN_UNTIL_TIME.
            • Quita la configuración de retención. Para quitar la configuración, deberás proporcionar valores vacíos para los campos RETENTION_MODE y RETAIN_UNTIL_TIME.
          • Si omites los campos RETENTION_MODE y RETAIN_UNTIL_TIME, la configuración de retención no se modificará.
        • Actualiza las conservaciones de objetos:

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

          Aquí:

          • TEMPORARY_HOLD_VALUE se usa para habilitar o inhabilitar la conservación temporal del objeto. Un valor de 1 habilita la retención, y un valor de 2 la inhabilita.

          • EVENT_BASED_HOLD_VALUE se usa para habilitar o inhabilitar la conservación de objetos basada en eventos. Un valor de 1 habilita la retención, y un valor de 2 la inhabilita.

        • Actualiza los contextos de objetos:

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

          Aquí:

          • CONTEXT_KEY es la clave del contexto del objeto que se insertará o actualizará.
          • CONTEXT_VALUE es el valor del contexto del objeto para la clave.
          • CONTEXT_KEY_TO_CLEAR es la clave que se quitará.
          • CLEAR_ALL_VALUE se establece en true para borrar todos los contextos de objetos existentes.
      • DRY_RUN_VALUE es un valor booleano opcional. Se establece en true para ejecutar el trabajo en modo de ejecución de prueba. El valor predeterminado es false.

    • Usa cURL para llamar a la API de JSON con una solicitud de trabajo de operaciones por lotes de almacenamientoPOST:

      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"

      Aquí:

      • JSON_FILE_NAME es el nombre del archivo JSON.
      • PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project
      • JOB_NAME es el nombre del trabajo de operaciones por lotes de almacenamiento.

Obtén detalles del trabajo de operaciones por lotes de almacenamiento

En esta sección, se describe cómo obtener los detalles del trabajo de operaciones por lotes de almacenamiento.

Para obtener los permisos que necesitas para ver un trabajo de operaciones por lotes de almacenamiento, pídele a tu administrador que te otorgue el rol de IAM Administrador de almacenamiento (roles/storage.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para ver un trabajo de operaciones por lotes de almacenamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para ver un trabajo de operaciones por lotes de almacenamiento:

  • Para ver un trabajo de operaciones de almacenamiento por lotes, haz lo siguiente: storagebatchoperations.jobs.get, storagebatchoperations.operations.get

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Línea de comandos

  1. En la consola de Google Cloud , activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs describe.

    gcloud storage batch-operations jobs describe JOB_ID

    Aquí:

    JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

    Cuando ejecutas un trabajo de prueba, el resultado incluye los siguientes campos:

    • totalObjectCount: Muestra la cantidad de objetos que coinciden con los criterios de selección.
    • errorSummaries: Enumera los errores que se encontraron durante la ejecución de prueba, como problemas de permisos o configuraciones no válidas.
    • totalBytesFound: Si usas prefijos de objetos para la selección de objetos, el trabajo también muestra el tamaño total de los objetos que se verán afectados.

    Si se realiza de forma correcta, la respuesta del trabajo de ejecución de prueba se verá similar al siguiente ejemplo:

      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 respuesta de trabajo exitosa omite el campo dryRun y devuelve las siguientes métricas en el campo counters:

    • Es la cantidad total de objetos encontrados.
    • Cantidad total de bytes encontrados cuando se usan prefijos de objetos.
    • Transformaciones de objetos exitosas.
    • Transformaciones de objetos fallidas, si corresponde
    • Contextos de objetos creados, si corresponde
    • Se borraron los contextos de objetos, si corresponde.
    • Se actualizaron los contextos de objetos, si corresponde. Este contador hace un seguimiento de las actualizaciones realizadas en las claves de contexto existentes.

    La respuesta para una ejecución de trabajo real se parece al siguiente ejemplo:

      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
      

Bibliotecas cliente

C++

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage de PHP.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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 de REST

API de JSON

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Usa cURL para llamar a la API de JSON con una solicitud de trabajo de operaciones por lotes de almacenamientoGET:

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

    Aquí:

    • PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project
    • JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

    Cuando ejecutas un trabajo de prueba, el resultado incluye los siguientes campos:

    • totalObjectCount: Muestra la cantidad de objetos que coinciden con los criterios de selección.
    • errorSummaries: Enumera los errores que se encontraron durante la ejecución de prueba, como problemas de permisos o configuraciones no válidas.
    • totalBytesFound: Si usas prefijos de objetos para la selección de objetos, el trabajo también muestra el tamaño total de los objetos que se verán afectados.

    Si se realiza de forma correcta, la respuesta de la ejecución de prueba se verá como el siguiente ejemplo:

    {
      "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 respuesta de trabajo exitosa omite el campo dryRun y devuelve las siguientes métricas en el campo counters:

  • Es la cantidad total de objetos encontrados.
  • Cantidad total de bytes encontrados cuando se usan prefijos de objetos.
  • Transformaciones de objetos exitosas.
  • Transformaciones de objetos fallidas, si corresponde
  • Contextos de objetos creados, si corresponde
  • Se borraron los contextos de objetos, si corresponde.
  • Se actualizaron los contextos de objetos, si corresponde. Este contador hace un seguimiento de las actualizaciones realizadas en las claves de contexto existentes.

    La respuesta para una ejecución de trabajo real se parece al siguiente ejemplo:

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

Enumera los trabajos de operaciones de almacenamiento por lotes

En esta sección, se describe cómo enumerar los trabajos de operaciones por lotes de almacenamiento dentro de un proyecto.

Para obtener los permisos que necesitas para enumerar los trabajos de operaciones por lotes de almacenamiento, pídele a tu administrador que te otorgue el rol de IAM Administrador de almacenamiento (roles/storage.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para enumerar los trabajos de operaciones por lotes de almacenamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para enumerar los trabajos de operaciones por lotes de almacenamiento:

  • Enumera los trabajos de operaciones de almacenamiento por lotes: storagebatchoperations.jobs.list, storagebatchoperations.operations.list

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Línea de comandos

  1. En la consola de Google Cloud , activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs list.

    gcloud storage batch-operations jobs list

Bibliotecas cliente

C++

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage de PHP.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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 de REST

API de JSON

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Usa cURL para llamar a la API de JSON con una solicitud de LIST trabajos de operaciones por lotes de almacenamiento:

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

    Aquí:

    PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project

Cancela un trabajo de operaciones por lotes de almacenamiento

En esta sección, se describe cómo cancelar un trabajo de operaciones por lotes de almacenamiento dentro de un proyecto.

Para obtener los permisos que necesitas para cancelar un trabajo de operaciones por lotes de almacenamiento, pídele a tu administrador que te otorgue el rol de IAM Administrador de almacenamiento (roles/storage.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para cancelar un trabajo de operaciones por lotes de almacenamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para cancelar un trabajo de operaciones por lotes de almacenamiento:

  • Cancela un trabajo de operaciones por lotes de almacenamiento: storagebatchoperations.jobs.cancel, storagebatchoperations.operations.cancel

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Línea de comandos

  1. En la consola de Google Cloud , activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs cancel.

    gcloud storage batch-operations jobs cancel JOB_ID

    Aquí:

    JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

Bibliotecas cliente

C++

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage de PHP.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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 de REST

API de JSON

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Usa cURL para llamar a la API de JSON con una solicitud de CANCEL un trabajo de operaciones por lotes de almacenamiento:

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

    Aquí:

    • PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project

    • JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

Borra un trabajo de operaciones por lotes de almacenamiento

En esta sección, se describe cómo borrar un trabajo de operaciones por lotes de almacenamiento.

Para obtener los permisos que necesitas para borrar un trabajo de operaciones por lotes de almacenamiento, pídele a tu administrador que te otorgue el rol de IAM Administrador de almacenamiento (roles/storage.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para borrar un trabajo de operaciones por lotes de almacenamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para borrar un trabajo de operaciones por lotes de almacenamiento:

  • Borra un trabajo de operaciones por lotes de almacenamiento: storagebatchoperations.jobs.delete

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Línea de comandos

  1. En la consola de Google Cloud , activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs delete.

    gcloud storage batch-operations jobs delete JOB_ID

    Aquí:

    JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

Bibliotecas cliente

C++

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage de PHP.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.

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 de REST

API de JSON

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Usa cURL para llamar a la API de JSON con una solicitud de DELETE un trabajo de operaciones por lotes de almacenamiento:

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

    Aquí:

    • PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project

    • JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

Crea un trabajo de operaciones por lotes de almacenamiento con conjuntos de datos de Storage Insights

Para crear un trabajo de operaciones por lotes de almacenamiento con conjuntos de datos de Storage Insights, completa los pasos que se indican en las siguientes secciones.

Para obtener los permisos que necesitas para crear un trabajo de operaciones por lotes de almacenamiento, pídele a tu administrador que te otorgue el rol de IAM Administrador de almacenamiento (roles/storage.admin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear un trabajo de operaciones por lotes de almacenamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear un trabajo de operaciones por lotes de almacenamiento:

  • Crea un trabajo de operaciones por lotes de almacenamiento: storagebatchoperations.jobs.create
  • Ejecuta el trabajo de operaciones por lotes de almacenamiento para borrar objetos: storage.objects.delete
  • Ejecuta el trabajo de operaciones por lotes de almacenamiento para actualizar los metadatos del objeto, actualizar la clave de encriptación administrada por el cliente del objeto, actualizar el contexto del objeto o actualizar la conservación del objeto: storage.objects.update

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Crea un manifiesto con conjuntos de datos de Storage Insights

Puedes crear el manifiesto para tu trabajo de operaciones por lotes de almacenamiento extrayendo datos de BigQuery. Para ello, deberás consultar el conjunto de datos vinculado, exportar los datos resultantes como un archivo CSV y guardarlos en un bucket de Cloud Storage. Luego, el trabajo de operaciones por lotes de almacenamiento puede usar este archivo CSV como manifiesto.

Ejecutar la siguiente consulta en SQL en BigQuery en una vista del conjunto de datos de Storage Insights recupera los objetos de más de 1 KiB que se llaman 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
  

Aquí:

  • URI es el URI del bucket que contiene el manifiesto. Por ejemplo, gs://bucket_name/path_to_csv_file/*.csv Cuando usas el comodín *.csv, BigQuery exporta el resultado a varios archivos CSV.
  • OVERWRITE_VALUE es un valor booleano. Si se configura como true, la operación de exportación reemplaza los archivos existentes en la ubicación especificada.
  • DATASET_VIEW_NAME es el nombre completamente calificado de la vista del conjunto de datos de Storage Insights en formato PROJECT_ID.DATASET_ID.VIEW_NAME. Para encontrar el nombre de tu conjunto de datos, consulta el conjunto de datos vinculado.

    Aquí:

    • PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project
    • DATASET_ID es el nombre del conjunto de datos. Por ejemplo, objects-deletion-dataset
    • VIEW_NAME es el nombre de la vista del conjunto de datos. Por ejemplo, bucket_attributes_view
  • BUCKET_NAME es el nombre del depósito. Por ejemplo, my-bucket

  • SNAPSHOT_TIME es la fecha y hora de la instantánea de la vista del conjunto de datos de Storage Insights. Por ejemplo, 2024-09-10T00:00:00Z

Crea un trabajo de operaciones por lotes de almacenamiento

Para crear un trabajo de operaciones por lotes de almacenamiento que procese los objetos incluidos en el manifiesto, completa los siguientes pasos:

Línea de comandos

  1. En la consola de Google Cloud , activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs create:

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

    Aquí:

    • JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

    • SOURCE_BUCKET_NAME es el bucket que contiene uno o más objetos que deseas procesar. Por ejemplo, my-bucket

    • URI es el URI del bucket que contiene el manifiesto. Por ejemplo, gs://bucket_name/path_to_csv_file/*.csv Cuando usas el comodín *.csv, BigQuery exporta el resultado a varios archivos CSV.

    • JOB_TYPE_FLAG es una de las siguientes marcas, según el tipo de trabajo.

      • --clear-all-object-custom-contexts: Borra todos los contextos de objetos existentes.

        En el siguiente ejemplo, se muestra cómo crear un trabajo para borrar todos los contextos de objetos que se enumeran en 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: Quita contextos con claves específicas. También puedes actualizar contextos específicos y quitar claves usando la marca --clear-object-custom-contexts y una de las siguientes marcas:

        • --update-object-custom-contexts: Proporciona un mapa de pares clave-valor.

          En el siguiente ejemplo, se muestra cómo crear un trabajo para quitar el contexto con la clave temp-id y actualizar o insertar el contexto con las claves project-id y cost-center para todos los objetos que se enumeran en 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: Proporciona la ruta de acceso a un archivo JSON o YAML con pares clave-valor.

          En el siguiente ejemplo, se muestra cómo crear un trabajo para procesar objetos definidos en manifest.csv. El trabajo hace lo siguiente:

          • Quita todos los contextos con la clave temp-id.

          • Actualiza los contextos existentes con las claves project-id y cost-center definidas en el archivo /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

          En el ejemplo anterior, /tmp/context_updates.json contiene los siguientes contextos de objeto:

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

Integración con los Controles del servicio de VPC

Puedes proporcionar una capa adicional de seguridad para los recursos de las operaciones por lotes de almacenamiento con los Controles del servicio de VPC. Cuando usas los Controles del servicio de VPC, agregas proyectos a los perímetros de servicio que protegen los recursos y servicios de las solicitudes que se originan fuera del perímetro. Para obtener más información sobre los detalles del perímetro de servicio de los Controles del servicio de VPC para las operaciones por lotes de almacenamiento, consulta Productos admitidos y limitaciones.

Usa los Registros de auditoría de Cloud para los trabajos de operaciones por lotes de almacenamiento

Los trabajos de operaciones por lotes de almacenamiento registran transformaciones en objetos de Cloud Storage en los registros de auditoría de Cloud de Cloud Storage. Puedes usar los Registros de auditoría de Cloud con Cloud Storage para hacer un seguimiento de las transformaciones de objetos que realizan los trabajos de operaciones por lotes de almacenamiento. Para obtener información sobre cómo habilitar los registros de auditoría, consulta Habilita los registros de auditoría. En la entrada de registro de auditoría, el campo de metadatos callUserAgent con el valor StorageBatchOperations indica una transformación de operaciones por lotes de almacenamiento.

Próximos pasos