Batchvorgangsjobs erstellen und verwalten

Auf dieser Seite wird beschrieben, wie Sie Jobs für Speicher-Batchvorgänge erstellen, ansehen, auflisten, abbrechen und löschen. Außerdem wird beschrieben, wie Sie Cloud-Audit-Logs mit Speicher-Batchvorgängen verwenden.

Hinweis

Führen Sie die Schritte in den folgenden Abschnitten aus, um Speicher-Batchvorgänge zu erstellen und zu verwalten.

Storage Intelligence konfigurieren

Wenn Sie Jobs für Speicher-Batchvorgänge erstellen und verwalten möchten, konfigurieren Sie Storage Intelligence für den Bucket, in dem Sie den Job ausführen möchten.

Google Cloud CLI einrichten

Sie müssen die Google Cloud CLI-Version 516.0.0 oder höher verwenden.

Standardprojekt festlegen

Legen Sie das Projekt fest, in dem Sie den Job für Speicher-Batchvorgänge erstellen möchten.

gcloud config set project PROJECT_ID

Dabei entspricht PROJECT_ID der ID des Projekts.

API aktivieren

Aktivieren Sie die Storage Batch Operations API.

gcloud services enable storagebatchoperations.googleapis.com

Manifest erstellen

Wenn Sie ein Manifest für die Objektauswahl verwenden möchten, erstellen Sie ein Manifest.

Job für Speicher-Batchvorgänge erstellen

In diesem Abschnitt wird beschrieben, wie Sie einen Job für Speicher-Batchvorgänge erstellen.

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage-Administrator (roles/storage.admin) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Jobs für Storage-Batchvorgänge benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen eines Jobs für Batchvorgänge für Speicher erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Erstellen eines Jobs für Speicherbatchvorgänge erforderlich:

  • Job für Speicher-Batchvorgänge erstellen: storagebatchoperations.jobs.create
  • Führen Sie den Batchvorgangsjob zum Löschen von Objekten aus: storage.objects.delete
  • Führen Sie den Batchvorgang zum Aktualisieren von Objektmetadaten, zum Aktualisieren des vom Kunden verwalteten Verschlüsselungsschlüssels für Objekte, zum Aktualisieren des Objektkontexts oder zum Aktualisieren des Objekt-Hold-Speichers aus: storage.objects.update

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Befehlszeile

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Optional: Führen Sie einen Probelauf aus. Bevor Sie einen Job ausführen, empfehlen wir, ihn im Probelaufmodus auszuführen, um die Kriterien für die Objektauswahl zu prüfen und nach Fehlern zu suchen. Beim Probelauf werden keine Objekte geändert.

    Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs create mit dem Flag --dry-run aus:

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

    Für den Probelauf werden dieselben Parameter wie für den tatsächlichen Job verwendet. Weitere Informationen finden Sie in den Parameterbeschreibungen.

    Informationen zum Ansehen der Ergebnisse des Probelaufs finden Sie unter Jobdetails für Storage-Batchvorgänge abrufen.

  3. Führen Sie nach einem erfolgreichen Probelauf den Befehl gcloud storage batch-operations jobs create aus.

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

    Die Parameter sind:

    • DRY_RUN_JOB_NAME ist der Name des Probelaufs für Speicherbatchvorgänge.
    • JOB_NAME ist der Name des Jobs für Speicher-Batchvorgänge.

    • BUCKET_NAME ist der Name des Buckets, der ein oder mehrere Objekte enthält, die Sie verarbeiten möchten.

    • OBJECT_SELECTION_FLAG ist eines der folgenden Flags, die Sie angeben müssen:

      • --included-object-prefixes: Geben Sie ein oder mehrere Objektpräfixe an. Beispiel:

        • Wenn Sie ein einzelnes Präfix abgleichen möchten, verwenden Sie: --included-object-prefixes='prefix1'.
        • Wenn Sie mehrere Präfixe abgleichen möchten, verwenden Sie eine durch Kommas getrennte Präfixliste: --included-object-prefixes='prefix1,prefix2'.
        • Wenn Sie alle Objekte einschließen möchten, verwenden Sie ein leeres Präfix: --included-object-prefixes=''.
      • --manifest-location: Geben Sie den Speicherort des Manifests an. Beispiel: gs://bucket_name/path/object_name.csv

    • JOB_TYPE_FLAG ist eines der folgenden Flags, das Sie je nach Jobtyp angeben müssen.

      • --delete-object: Löscht ein oder mehrere Objekte.

        • Wenn die Objektversionsverwaltung für den Bucket aktiviert ist, werden aktuelle Objekte in einen nicht aktuellen Zustand überführt und nicht aktuelle Objekte werden übersprungen.

        • Wenn die Objektversionsverwaltung für den Bucket deaktiviert ist, werden Objekte durch den Löschvorgang endgültig gelöscht und nicht aktuelle Objekte werden übersprungen.

      • --enable-permanent-object-deletion: Objekte endgültig löschen. Verwenden Sie dieses Flag zusammen mit dem Flag --delete-object, um sowohl Live- als auch nicht aktuelle Objekte in einem Bucket dauerhaft zu löschen, unabhängig von der Konfiguration der Objektversionsverwaltung des Buckets.

      • --rewrite-object: Aktualisieren Sie die kundenverwalteten Verschlüsselungsschlüssel für ein oder mehrere Objekte.

      • --put-object-event-based-hold: Eventbasierte Aufbewahrungspflichten für Objekte aktivieren.

      • --no-put-object-event-based-hold: Deaktivieren Sie ereignisbasierte Objekt-Holds.

      • --put-object-temporary-hold: Temporäre Objektsperren aktivieren.

      • --no-put-object-temporary-hold: Deaktivieren Sie temporäre Objektreservierungen.

        Im folgenden Beispiel wird gezeigt, wie Sie einen Job erstellen, um die Content-Language-Metadaten für alle in manifest.csv aufgeführten Objekte auf en zu aktualisieren.

        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: Objektmetadaten aktualisieren. Geben Sie das Schlüssel/Wert-Paar für die Objektmetadaten an, die Sie ändern möchten. Sie können ein oder mehrere Schlüssel/Wert-Paare als Liste angeben. Mit dem Flag --put-metadata können Sie auch Aufbewahrungskonfigurationen für Objekte festlegen. Geben Sie dazu die Aufbewahrungsparameter mit den Feldern Retain-Until und Retention-Mode an. Beispiel:

        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

        Wobei:

        • RETAIN_UNTIL_TIME ist das Datum und die Uhrzeit im RFC 3339-Format, bis zu der das Objekt aufbewahrt wird. Beispiel: 2025-10-09T10:30:00Z. Wenn Sie die Aufbewahrungskonfiguration für ein Objekt festlegen möchten, müssen Sie die Aufbewahrung für den Bucket aktivieren, der das Objekt enthält.

        • RETENTION_MODE ist der Aufbewahrungsmodus, entweder Unlocked oder Locked.

          Wenn Sie eine Anfrage zum Aktualisieren der Felder RETENTION_MODE und RETAIN_UNTIL_TIME senden, beachten Sie Folgendes:

          • Wenn Sie die Konfiguration für die Objektaufbewahrung aktualisieren möchten, müssen Sie nicht leere Werte für die Felder RETENTION_MODE und RETAIN_UNTIL_TIME angeben. Wenn Sie nur eines festlegen, führt das zu einem INVALID_ARGUMENT-Fehler.
          • Sie können den RETAIN_UNTIL_TIME-Wert für Objekte sowohl im Unlocked- als auch im Locked-Modus erweitern.
          • Die Objektaufbewahrung muss im Unlocked-Modus sein, wenn Sie Folgendes tun möchten:
            • Reduzieren Sie den Wert von RETAIN_UNTIL_TIME.
            • Entfernen Sie die Aufbewahrungskonfiguration. Wenn Sie die Konfiguration entfernen möchten, müssen Sie für die Felder RETENTION_MODE und RETAIN_UNTIL_TIME leere Werte angeben.
          • Wenn Sie sowohl das Feld RETENTION_MODE als auch das Feld RETAIN_UNTIL_TIME weglassen, bleibt die Aufbewahrungskonfiguration unverändert.

      • --clear-all-object-custom-contexts: Löschen Sie alle vorhandenen Objektkontexte.

        Das folgende Beispiel zeigt, wie Sie einen Job erstellen, um alle Objektkontexte für Objekte zu löschen, die in manifest.csv aufgeführt sind:

        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: Entfernt Kontexte mit bestimmten Schlüsseln. Sie können auch bestimmte Kontexte aktualisieren und gleichzeitig Schlüssel entfernen. Verwenden Sie dazu das Flag --clear-object-custom-contexts und eines der folgenden Flags:

        • --update-object-custom-contexts: Geben Sie eine Zuordnung von Schlüssel/Wert-Paaren an.

          Im folgenden Beispiel wird gezeigt, wie Sie einen Job erstellen, um den Kontext mit dem Schlüssel temp-id für alle in manifest.csv aufgeführten Objekte zu entfernen und den Kontext mit den Schlüsseln project-id und cost-center zu aktualisieren oder einzufügen:

          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: Geben Sie den Pfad zu einer JSON- oder YAML-Datei mit Schlüssel/Wert-Paaren an.

          Das folgende Beispiel zeigt, wie Sie einen Job zum Verarbeiten von Objekten erstellen, die in manifest.csv definiert sind. Der Job führt folgende Schritte aus:

          • Entfernt alle Kontexte mit dem Schlüssel temp-id.

          • Aktualisiert vorhandene Kontexte mit den Schlüsseln project-id und cost-center, die in der Datei /tmp/context_updates.json definiert sind.

          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

          Dabei enthält /tmp/context_updates.json die folgenden Objektkontexte:

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

Clientbibliotheken

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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

Weitere Informationen finden Sie in der API-Referenzdokumentation zu Cloud Storage PHP.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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());
}

REST APIs

JSON-API

  1. Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Erstellen Sie eine JSON-Datei mit den Einstellungen für den Storage-Batchvorgangsjob. Folgende Einstellungen können verwendet werden:

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

    Wobei:

    • JOB_NAME ist der Name des Jobs für Speicher-Batchvorgänge.

    • JOB_DESCRIPTION ist die Beschreibung des Jobs für Speicher-Batchvorgänge.

    • BUCKET_NAME ist der Name des Buckets, der ein oder mehrere Objekte enthält, die Sie verarbeiten möchten.

    • Verwenden Sie eines der folgenden Attribute in der JSON-Datei, um die zu verarbeitenden Objekte anzugeben:

      • MANIFEST_LOCATION ist der Speicherort des Manifests. Beispiel: gs://bucket_name/path/object_name.csv

      • OBJECT_PREFIXES ist die durch Kommas getrennte Liste mit einem oder mehreren Objektpräfixen. Wenn Sie alle Objekte abgleichen möchten, verwenden Sie eine leere Liste.

    • Geben Sie je nach dem Job, den Sie verarbeiten möchten, eine der folgenden Optionen an:

      • Objekte löschen:

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        Dabei ist OBJECT_DELETION_VALUE TRUE, um Objekte zu löschen.

      • So aktualisieren Sie den vom Kunden verwalteten Verschlüsselungsschlüssel für Objekte:

        "RewriteObject":
        {
        "kms_key": KMS_KEY_VALUE
        }

        Dabei ist KMS_KEY_VALUE der Wert des KMS-Schlüssels des Objekts, den Sie aktualisieren möchten.

      • Objektmetadaten aktualisieren:

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

        Wobei:

        • METADATA_KEY/VALUE ist das Schlüssel/Wert-Paar der Metadaten des Objekts. Sie können ein oder mehrere Paare angeben.
        • RETAIN_UNTIL_TIME ist das Datum und die Uhrzeit im RFC 3339-Format, bis zu der das Objekt aufbewahrt wird. Beispiel: 2025-10-09T10:30:00Z. Wenn Sie die Aufbewahrungskonfiguration für ein Objekt festlegen möchten, müssen Sie die Aufbewahrung für den Bucket aktivieren, der das Objekt enthält.
        • RETENTION_MODE ist der Aufbewahrungsmodus, entweder Unlocked oder Locked.

          Wenn Sie eine Anfrage zum Aktualisieren der Felder RETENTION_MODE und RETAIN_UNTIL_TIME senden, beachten Sie Folgendes:

          • Wenn Sie die Konfiguration für die Objektaufbewahrung aktualisieren möchten, müssen Sie nicht leere Werte für die Felder RETENTION_MODE und RETAIN_UNTIL_TIME angeben. Wenn Sie nur eines festlegen, führt das zu einem INVALID_ARGUMENT-Fehler.
          • Sie können den RETAIN_UNTIL_TIME-Wert für Objekte sowohl im Unlocked- als auch im Locked-Modus erweitern.
          • Die Objektaufbewahrung muss im Unlocked-Modus sein, wenn Sie Folgendes tun möchten:
            • Reduzieren Sie den Wert von RETAIN_UNTIL_TIME.
            • Entfernen Sie die Aufbewahrungskonfiguration. Wenn Sie die Konfiguration entfernen möchten, müssen Sie für die Felder RETENTION_MODE und RETAIN_UNTIL_TIME leere Werte angeben.
          • Wenn Sie sowohl das Feld RETENTION_MODE als auch das Feld RETAIN_UNTIL_TIME weglassen, bleibt die Aufbewahrungskonfiguration unverändert.
        • Objekt-Holds aktualisieren:

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

          Wobei:

          • TEMPORARY_HOLD_VALUE wird verwendet, um den temporären Objekt-Hold zu aktivieren oder zu deaktivieren. Ein Wert von 1 aktiviert die Zurückstellung und ein Wert von 2 deaktiviert sie.

          • EVENT_BASED_HOLD_VALUE wird verwendet, um den ereignisbasierten Objekt-Hold zu aktivieren oder zu deaktivieren. Ein Wert von 1 aktiviert die Zurückstellung und ein Wert von 2 deaktiviert sie.

        • Objektkontexte aktualisieren:

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

          Wobei:

          • CONTEXT_KEY ist der Schlüssel des Objektkontexts, der eingefügt oder aktualisiert werden soll.
          • CONTEXT_VALUE ist der Objektkontextwert für den Schlüssel.
          • CONTEXT_KEY_TO_CLEAR ist der zu entfernende Schlüssel.
          • CLEAR_ALL_VALUE ist auf true festgelegt, um alle vorhandenen Objektkontexte zu löschen.
      • DRY_RUN_VALUE ist ein optionaler boolescher Wert. Legen Sie true fest, um den Job im Probelaufmodus auszuführen. Der Standardwert ist false.

    • Verwenden Sie cURL, um die JSON API mit einer POST-Speicher-Batchvorgangsaufgabe aufzurufen:

      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"

      Wobei:

      • JSON_FILE_NAME ist der Name der JSON-Datei.
      • PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.
      • JOB_NAME ist der Name des Jobs für Speicher-Batchvorgänge.

Details zu Jobs für Speicher-Batchvorgänge abrufen

In diesem Abschnitt wird beschrieben, wie Sie die Jobdetails für Speicher-Batchvorgänge abrufen.

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage-Administrator (roles/storage.admin) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aufrufen eines Storage-Batchvorgangs benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Aufrufen eines Jobs für Storage-Batchvorgänge erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um einen Speicher-Batchvorgangsjob aufzurufen:

  • Storage-Batchvorgangsjob ansehen: storagebatchoperations.jobs.get, storagebatchoperations.operations.get

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Befehlszeile

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs describe aus.

    gcloud storage batch-operations jobs describe JOB_ID

    Wobei:

    JOB_ID ist der Name des Jobs für Speicher-Batchvorgänge.

    Wenn Sie einen Job im Probebetrieb ausführen, enthält die Ausgabe die folgenden Felder:

    • totalObjectCount: Hier wird die Anzahl der Objekte angezeigt, die Ihren Auswahlkriterien entsprechen.
    • errorSummaries: Hier werden alle Fehler aufgeführt, die während des Probelaufs gefunden wurden, z. B. Berechtigungsprobleme oder ungültige Konfigurationen.
    • totalBytesFound: Wenn Sie Objektpräfixe für die Objektauswahl verwenden, wird im Job auch die Gesamtgröße der betroffenen Objekte angezeigt.

    Wenn der Vorgang erfolgreich war, sieht die Antwort für den Testlaufjob in etwa so aus:

      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
    

    Bei einer erfolgreichen Jobantwort wird das Feld dryRun ausgelassen und die folgenden Messwerte werden im Feld counters zurückgegeben:

    • Gesamtzahl der gefundenen Objekte.
    • Gesamtzahl der Bytes, die bei Verwendung von Objektpräfixen gefunden wurden.
    • Erfolgreiche Objekttransformationen.
    • Fehlgeschlagene Objekttransformationen, sofern zutreffend.
    • Erstellte Objektkontexte, falls zutreffend.
    • Objektkontexte wurden gegebenenfalls gelöscht.
    • Objektkontexte wurden aktualisiert, sofern zutreffend. Dieser Zähler erfasst Aktualisierungen an vorhandenen Kontextschlüsseln.

    Die Antwort für einen tatsächlichen Joblauf sieht in etwa so aus:

      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
      

Clientbibliotheken

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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

Weitere Informationen finden Sie in der API-Referenzdokumentation zu Cloud Storage PHP.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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());
}

REST APIs

JSON-API

  1. Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Verwenden Sie cURL, um die JSON API mit einer GET-Speicher-Batchvorgangsaufgabe aufzurufen:

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

    Wobei:

    • PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.
    • JOB_ID ist der Name des Jobs für Speicher-Batchvorgänge.

    Wenn Sie einen Job im Probebetrieb ausführen, enthält die Ausgabe die folgenden Felder:

    • totalObjectCount: Hier wird die Anzahl der Objekte angezeigt, die Ihren Auswahlkriterien entsprechen.
    • errorSummaries: Hier werden alle Fehler aufgeführt, die während des Probelaufs gefunden wurden, z. B. Berechtigungsprobleme oder ungültige Konfigurationen.
    • totalBytesFound: Wenn Sie Objektpräfixe für die Objektauswahl verwenden, wird im Job auch die Gesamtgröße der betroffenen Objekte angezeigt.

    Wenn der Vorgang erfolgreich war, sieht die Antwort für den Probelauf in etwa so aus:

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

Bei einer erfolgreichen Jobantwort wird das Feld dryRun ausgelassen und die folgenden Messwerte werden im Feld counters zurückgegeben:

  • Gesamtzahl der gefundenen Objekte.
  • Gesamtzahl der Bytes, die bei Verwendung von Objektpräfixen gefunden wurden.
  • Erfolgreiche Objekttransformationen.
  • Fehlgeschlagene Objekttransformationen, sofern zutreffend.
  • Erstellte Objektkontexte, falls zutreffend.
  • Objektkontexte wurden gegebenenfalls gelöscht.
  • Objektkontexte wurden aktualisiert, sofern zutreffend. Dieser Zähler erfasst Aktualisierungen an vorhandenen Kontextschlüsseln.

    Die Antwort für einen tatsächlichen Joblauf sieht in etwa so aus:

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

Batchvorgangsjobs für Speicher auflisten

In diesem Abschnitt wird beschrieben, wie Sie die Jobs für Speicher-Batchvorgänge in einem Projekt auflisten.

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage-Administrator (roles/storage.admin) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Auflisten von Storage-Batchvorgängen benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Auflisten von Speicher-Batchvorgangsjobs erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Auflisten von Speicherbatchvorgangs-Jobs erforderlich:

  • Batchvorgangsjobs für Speicher auflisten: storagebatchoperations.jobs.list, storagebatchoperations.operations.list

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Befehlszeile

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs list aus.

    gcloud storage batch-operations jobs list

Clientbibliotheken

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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

Weitere Informationen finden Sie in der API-Referenzdokumentation zu Cloud Storage PHP.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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());
    }
}

REST APIs

JSON-API

  1. Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Verwenden Sie cURL, um die JSON API mit einer LIST-Anfrage für Batchvorgänge für Speicher aufzurufen:

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

    Wobei:

    PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.

Job für Speicher-Batchvorgänge abbrechen

In diesem Abschnitt wird beschrieben, wie Sie einen Storage-Batchvorgangsjob in einem Projekt abbrechen.

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage-Administrator (roles/storage.admin) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Abbrechen eines Batchvorgangs für Speicher benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Abbrechen eines Batchvorgangs für Speicher erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Abbrechen eines Speicherbatchvorgangs erforderlich:

  • Batchvorgangsjob für Speicher abbrechen: storagebatchoperations.jobs.cancel, storagebatchoperations.operations.cancel

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Befehlszeile

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs cancel aus.

    gcloud storage batch-operations jobs cancel JOB_ID

    Wobei:

    JOB_ID ist der Name des Jobs für Speicher-Batchvorgänge.

Clientbibliotheken

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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

Weitere Informationen finden Sie in der API-Referenzdokumentation zu Cloud Storage PHP.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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);
}

REST APIs

JSON-API

  1. Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Verwenden Sie cURL, um die JSON API mit einer CANCEL-Anfrage für einen Speicher-Batchvorgang aufzurufen:

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

    Wobei:

    • PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.

    • JOB_ID ist der Name des Jobs für Speicher-Batchvorgänge.

Job für Speicher-Batchvorgänge löschen

In diesem Abschnitt wird beschrieben, wie Sie einen Job für Speicher-Batchvorgänge löschen.

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage-Administrator (roles/storage.admin) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Löschen eines Batchvorgangs für Speicher benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Löschen eines Batchvorgangsjobs für den Speicher erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Löschen eines Speicher-Batchvorgangsjobs erforderlich:

  • Batchvorgangsjob für Speicher löschen: storagebatchoperations.jobs.delete

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Befehlszeile

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs delete aus.

    gcloud storage batch-operations jobs delete JOB_ID

    Wobei:

    JOB_ID ist der Name des Jobs für Speicher-Batchvorgänge.

Clientbibliotheken

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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

Weitere Informationen finden Sie in der API-Referenzdokumentation zu Cloud Storage PHP.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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);
}

REST APIs

JSON-API

  1. Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Verwenden Sie cURL, um die JSON API mit einer DELETE-Anfrage für einen Speicher-Batchvorgang aufzurufen:

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

    Wobei:

    • PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.

    • JOB_ID ist der Name des Jobs für Speicher-Batchvorgänge.

Job für Speicher-Batchvorgänge mit Storage Insights-Datasets erstellen

Führen Sie die Schritte in den folgenden Abschnitten aus, um einen Batchvorgang für Speicher mit Storage Insights-Datasets zu erstellen.

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage-Administrator (roles/storage.admin) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Jobs für Storage-Batchvorgänge benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen eines Jobs für Batchvorgänge für Speicher erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Erstellen eines Jobs für Speicherbatchvorgänge erforderlich:

  • Job für Speicher-Batchvorgänge erstellen: storagebatchoperations.jobs.create
  • Führen Sie den Batchvorgangsjob zum Löschen von Objekten aus: storage.objects.delete
  • Führen Sie den Batchvorgang zum Aktualisieren von Objektmetadaten, des vom Kunden verwalteten Verschlüsselungsschlüssels, des Objektkontexts oder des Objekt-Hold-Speichers aus: storage.objects.update

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Manifest mit Storage Insights-Datasets erstellen

Sie können das Manifest für Ihren Storage-Batchvorgangsjob erstellen, indem Sie Daten aus BigQuery extrahieren. Dazu müssen Sie das verknüpfte Dataset abfragen, die resultierenden Daten als CSV-Datei exportieren und in einem Cloud Storage-Bucket speichern. Der Job für Speicher-Batchvorgänge kann diese CSV-Datei dann als Manifest verwenden.

Wenn Sie die folgende SQL-Abfrage in BigQuery für eine Dataset-Ansicht von Storage Insights ausführen, werden Objekte abgerufen, die größer als 1 KiB sind und den Namen Temp_Training haben:

  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
  

Wobei:

  • URI ist der URI des Buckets, der das Manifest enthält. Beispiel: gs://bucket_name/path_to_csv_file/*.csv. Wenn Sie den Platzhalter *.csv verwenden, exportiert BigQuery das Ergebnis in mehrere CSV-Dateien.
  • OVERWRITE_VALUE ist ein boolescher Wert. Wenn der Wert auf true festgelegt ist, werden vorhandene Dateien am angegebenen Speicherort durch den Exportvorgang überschrieben.
  • DATASET_VIEW_NAME ist der vollständig qualifizierte Name der Storage Insights-Datasetansicht im Format PROJECT_ID.DATASET_ID.VIEW_NAME. Rufen Sie das verknüpfte Dataset auf, um den Namen Ihres Datasets zu ermitteln.

    Wobei:

    • PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.
    • DATASET_ID ist der Name des Datasets. Beispiel: objects-deletion-dataset.
    • VIEW_NAME ist der Name der Dataset-Ansicht. Beispiel: bucket_attributes_view.
  • BUCKET_NAME ist der Name des Buckets. Beispiel: my-bucket.

  • SNAPSHOT_TIME ist der Snapshot-Zeitpunkt der Storage Insights-Datasetansicht. Beispiel: 2024-09-10T00:00:00Z.

Job für Speicher-Batchvorgänge erstellen

So erstellen Sie einen Speicher-Batchvorgangsjob zum Verarbeiten von Objekten, die im Manifest enthalten sind:

Befehlszeile

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs create aus:

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

    Wobei:

    • JOB_ID ist der Name des Jobs für Speicher-Batchvorgänge.

    • SOURCE_BUCKET_NAME ist der Bucket, der ein oder mehrere Objekte enthält, die Sie verarbeiten möchten. Beispiel: my-bucket.

    • URI ist der URI des Buckets, der das Manifest enthält. Beispiel: gs://bucket_name/path_to_csv_file/*.csv. Wenn Sie den Platzhalter *.csv verwenden, exportiert BigQuery das Ergebnis in mehrere CSV-Dateien.

    • JOB_TYPE_FLAG ist je nach Jobtyp eines der folgenden Flags.

      • --clear-all-object-custom-contexts: Löschen Sie alle vorhandenen Objektkontexte.

        Das folgende Beispiel zeigt, wie Sie einen Job erstellen, um alle Objektkontexte für Objekte zu löschen, die in manifest.csv aufgeführt sind:

        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: Entfernt Kontexte mit bestimmten Schlüsseln. Sie können auch bestimmte Kontexte aktualisieren und gleichzeitig Schlüssel entfernen. Verwenden Sie dazu das Flag --clear-object-custom-contexts und eines der folgenden Flags:

        • --update-object-custom-contexts: Geben Sie eine Zuordnung von Schlüssel/Wert-Paaren an.

          Im folgenden Beispiel wird gezeigt, wie Sie einen Job erstellen, um den Kontext mit dem Schlüssel temp-id für alle in manifest.csv aufgeführten Objekte zu entfernen und den Kontext mit den Schlüsseln project-id und cost-center zu aktualisieren oder einzufügen:

          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: Geben Sie den Pfad zu einer JSON- oder YAML-Datei mit Schlüssel/Wert-Paaren an.

          Das folgende Beispiel zeigt, wie Sie einen Job zum Verarbeiten von Objekten erstellen, die in manifest.csv definiert sind. Der Job führt folgende Schritte aus:

          • Entfernt alle Kontexte mit dem Schlüssel temp-id.

          • Aktualisiert vorhandene Kontexte mit den Schlüsseln project-id und cost-center, die in der Datei /tmp/context_updates.json definiert sind.

          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

          Dabei enthält /tmp/context_updates.json die folgenden Objektkontexte:

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

Einbindung in VPC Service Controls

Mit VPC Service Controls können Sie eine zusätzliche Sicherheitsebene für Ressourcen für Storage-Batchvorgänge einrichten. Wenn Sie VPC Service Controls verwenden, fügen Sie Projekte zu Dienstperimetern hinzu, die Ressourcen und Dienste vor Anfragen schützen, die ihren Ursprung außerhalb des Perimeters haben. Weitere Informationen zu den Details von VPC Service Controls-Dienstperimetern für Storage-Batchvorgänge finden Sie unter Unterstützte Produkte und Einschränkungen.

Cloud-Audit-Logs für Speicher-Batchvorgänge verwenden

Bei Speicher-Batchvorgängen werden Transformationen von Cloud Storage-Objekten in Cloud Storage-Cloud-Audit-Logs aufgezeichnet. Mit Cloud-Audit-Logs für Cloud Storage können Sie die Objekttransformationen nachverfolgen, die von Storage-Batchvorgangs-Jobs ausgeführt werden. Informationen zum Aktivieren von Audit-Logs finden Sie unter Audit-Logs aktivieren. Im Audit-Log-Eintrag gibt das Metadatenfeld callUserAgent mit dem Wert StorageBatchOperations eine Transformation von Storage-Batchvorgängen an.

Nächste Schritte