Batchvorgangsjobs erstellen und verwalten

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

Hinweis

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

Storage Intelligence konfigurieren

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

Storage-Batchvorgänge – 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 eine Manifestdatei. Ein Manifest ist eine der Möglichkeiten, Objekte für die Verarbeitung in einem Storage-Batchvorgangsjob auszuwählen.

Job für Storage-Batchvorgänge erstellen

In diesem Abschnitt wird beschrieben, wie Sie einen Job für Storage-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.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Console

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets, der die Objekte enthält, für die Sie Batchvorgänge ausführen möchten.

    Die Seite Bucket-Details wird geöffnet und der Tab Objekte ist ausgewählt.

  3. Klicken Sie auf Batchvorgänge erstellen.
  4. Wählen Sie im Bereich Vorgang auswählen den Vorgangstyp aus:
    • Objekt-Holds verwalten: Wählen Sie Temporärer Hold oder Ereignisbasierter Hold aus. Weitere Informationen finden Sie unter Objekt-Holds.
    • Objektmetadaten aktualisieren: So fügen Sie Objektmetadaten hinzu:
      • So fügen Sie benutzerdefinierte Metadaten hinzu:
        1. Geben Sie im Feld Schlüssel einen Schlüsselnamen ein.
        2. Geben Sie im Feld Wert einen Wert für diesen Schlüssel ein.
        3. Optional: Klicken Sie auf + Element hinzufügen, um weitere Schlüssel/Wert-Paare hinzuzufügen.
      • So aktualisieren Sie Metadaten mit festen Schlüsseln:
        1. Klicken Sie zum Maximieren des Abschnitts Metadaten mit festen Schlüsseln aktualisieren auf den Erweiterungspfeil.
        2. Wählen Sie in der Liste Wählen Sie mindestens einen Satz Metadaten aus, der aktualisiert werden soll die Metadatenelemente aus, die Sie bearbeiten möchten.
    • Verschlüsselungsschlüssel aktualisieren/rotieren: So verwenden oder aktualisieren Sie den Verschlüsselungsschlüssel für Objekte:
      1. Wählen Sie in der Liste Cloud KMS-Schlüssel auswählen einen vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) aus.
      2. Optional: Wählen Sie Projekt wechseln aus, um einen Schlüssel aus einem anderen Projekt auszuwählen, oder Schlüssel manuell eingeben, um Details einzugeben.
    • Objekte löschen: So löschen Sie Objekte:
      1. Prüfen, ob die Objektversionsverwaltung aktiviert ist.
      2. Wenn die Objektversionsverwaltung aktiviert ist, wählen Sie eine der folgenden Löschoptionen aus:

        • Wählen Sie Alle Versionen der Objekte löschen aus, um sowohl Live- als auch nicht aktuelle Versionen zu entfernen.
        • Wählen Sie Live-Versionen dauerhaft löschen aus, um nur die Live-Version zu entfernen.

        Wenn die Objektversionsverwaltung nicht aktiviert ist, werden alle zum Löschen ausgewählten Objekte dauerhaft gelöscht.

  5. Klicken Sie auf Weiter.
  6. Führen Sie im Bereich Vorgang benennen und Objekte angeben die folgenden Schritte aus:
    1. Geben Sie im Feld Name einen Namen ein.
    2. Optional: Geben Sie im Feld Beschreibung eine Beschreibung ein.
    3. Definieren Sie im Abschnitt Objekte angeben ein Kriterium zum Verarbeiten von Objekten aus dem Bucket. Wählen Sie eine der folgenden Optionen aus:
      • Alle Objekte auswählen: Bezieht alle Objekte im Bucket ein.
      • Objekte mithilfe von Präfixfiltern auswählen: So definieren Sie die Liste der Objekte mithilfe von Präfixfiltern:
        1. Geben Sie im Feld Präfixe der Objekte eingeben, die eingeschlossen werden sollen ein Präfix ein.
        2. Optional: Klicken Sie auf + Präfix hinzufügen, um weitere Präfixe anzugeben.
      • Listen von Objekten mithilfe von CSV-Manifestdateien hochladen: So verwenden Sie eine Manifestdatei, um Objekte auszuwählen:

        1. Laden Sie die CSV-Manifestdatei in einen Bucket hoch. Diese Datei muss die Header Bucket-Name, Objektschlüssel und Generationsnummer enthalten.
        2. Wählen Sie in der Liste Modus für Manifestdatei auswählen eine der folgenden Optionen aus:
          • Wenn Sie Manifestdatei in Cloud Storage auswählen auswählen, klicken Sie im Feld Manifestdatei in Cloud Storage auswählen auf Durchsuchen. Suchen Sie im Dialogfeld Objekt auswählen nach Ihrer Manifest-CSV-Datei und klicken Sie dann auf Auswählen.
          • Wenn Sie Mehrere Manifestdateien mit Platzhalter auswählen auswählen, geben Sie den Dateipfad im Feld Speicherort der Manifestdatei mit Platzhalter eingeben ein. Beispiel: bucket-name/folder/manifest_*
  7. Klicken Sie auf Erstellen.

Befehlszeile

Sie können eine der folgenden Quellkonfigurationen auswählen, um die Liste der Objekte für Ihren Batchvorgangsjob zu definieren:

  • Projekt als Quelle: Es werden Objekte für ein Projekt mit einer Storage Insights-Dataset-Konfiguration ausgewählt. Anstatt einzelne Buckets oder Präfixe anzugeben, können Sie erweiterte Filterparameter wie --insights-dataset-config, --target-project, --bucket-filters und --object-filters angeben. Weitere Informationen finden Sie unter Job mit erweiterten Filtern erstellen.
  • Buckets als Quelle: Richtet sich auf Objekte in bestimmten Buckets aus. Sie müssen eines der folgenden Flags angeben:
    • --bucket oder --bucket-list, um die Ziel-Buckets zu definieren.
    • Eine Manifest-CSV-Datei (--manifest-location) oder Objektpräfixe (--included-object-prefixes) zum Definieren der Zielobjekte.
  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. Google Cloud CLI-Version 516.0.0 oder höher verwenden.

  3. Führen Sie den Befehl gcloud config set project aus, um das Standardprojekt festzulegen:

    gcloud config set project PROJECT_ID

    Dabei ist PROJECT_ID die ID Ihres Projekts.

  4. Optional: Führen Sie einen Probelauf aus. Bevor Sie einen Job ausführen, sollten Sie ihn im Probelaufmodus ausführen, um die Objektauswahlkriterien 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 | --bucket-list=BUCKET_LIST} OBJECT_SELECTION_FLAG JOB_TYPE_FLAG \
    --dry-run

    Wobei:

    • DRY_RUN_JOB_NAME ist der Name des Jobs für den Probelauf von Storage-Batchvorgängen.

    Die anderen Parameter sind dieselben wie für den tatsächlichen Job. Weitere Informationen finden Sie unter Parameterbeschreibungen.

    Informationen zum Aufrufen der Ergebnisse des Probelaufs finden Sie unter Details zu Storage-Batchvorgangsjobs abrufen.

  5. 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 | --bucket-list=BUCKET_LIST} OBJECT_SELECTION_FLAG JOB_TYPE_FLAG

    Die Parameter sind wie folgt:

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

    • --bucket: BUCKET ist der Name des Buckets, der die zu verarbeitenden Objekte enthält.

    • --bucket-list: BUCKET_LIST ist eine durch Kommas getrennte Liste mit einem oder mehreren Bucket-Namen, die die zu verarbeitenden Objekte enthalten. Sie können bis zu 1.000 Buckets aus einem beliebigen Projekt angeben, sofern für jeden Bucket ein Storage Intelligence-Abo abgeschlossen ist.

    • 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 kommagetrennte 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, die Sie je nach Jobtyp angeben müssen.

      • --delete-object: Ein oder mehrere Objekte löschen.

        • 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. Sie können dieses Flag auch verwenden, um die Speicherklasse des Objekts zu ändern, indem Sie den storage-class-Schlüssel angeben. Unterstützte Speicherklassen sind STANDARD, NEARLINE, COLDLINE und ARCHIVE. Beispiel: --rewrite-object=storage-class=NEARLINE.

      • --set-object-acls-from-file: Patch-Objekt-ACLs (Access Control Lists). Geben Sie eine JSON- oder YAML-Datei mit Berechtigungen an, die für Entitäten wie allUsers oder allAuthenticatedUsers hinzugefügt oder aktualisiert werden sollen. Beispiel: --set-object-acls-from-file=acl-updates.yaml oder --set-object-acls-from-file=acl-updates.json.

        Die Struktur der YAML-Datei für Updates ist wie folgt:

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

        Die JSON-Datei für Aktualisierungen hat folgende Struktur:

        {
        "grants": [
          {
            "entity": "allAuthenticatedUsers",
            "role": "READER"
          }
        ],
        "remove_entities": [
          "allUsers"
        ]
        }
      • --put-object-event-based-hold: Ereignisbasierte Objekt-Holds aktivieren.

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

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

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

        Im folgenden Beispiel wird gezeigt, wie Sie einen Job erstellen, um die Metadaten Content-Language für alle in manifest.csv aufgeführten Objekte in 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

        Im folgenden Beispiel wird gezeigt, wie Sie einen Job für mehrere Buckets erstellen, um Content-Language auf en-us zu aktualisieren:

        gcloud storage batch-operations jobs create my-job \
        --bucket-list=bucket1,bucket2 \
        --included-object-prefixes='' \
        --put-metadata=Content-Language=en-us
      • --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. Sie können auch Konfigurationen für die Objektaufbewahrung mit dem Flag --put-metadata 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 der beiden Felder festlegen, wird der Fehler INVALID_ARGUMENT zurückgegeben.
          • Sie können den RETAIN_UNTIL_TIME-Wert für Objekte sowohl im Unlocked- als auch im Locked-Modus verlängern.
          • Die Objektaufbewahrung muss im Modus Unlocked sein, wenn Sie Folgendes tun möchten:
            • Reduzieren Sie den Wert von RETAIN_UNTIL_TIME.
            • Entfernen Sie die Konfiguration für die Aufbewahrung. 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 Konfiguration für die Aufbewahrungsdauer 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: Kontexte mit bestimmten Schlüsseln entfernen. Sie können auch bestimmte Kontexte aktualisieren und gleichzeitig Schlüssel entfernen, indem Sie das Flag --clear-object-custom-contexts und eines der folgenden Flags verwenden:

        • --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 zu entfernen und den Kontext mit dem Schlüssel project-id und cost-center für alle in manifest.csv aufgeführten Objekte 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 Referenzdokumentation zur Cloud Storage PHP 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.

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

JSON API

Sie können eine der folgenden Quellkonfigurationen auswählen, um die Liste der Objekte für Ihren Batchvorgangsjob zu definieren:

  • Projekt als Quelle: Es werden Objekte im gesamten Projekt mit einer projectSource-Konfiguration als Ziel verwendet. Anstatt einzelne Buckets oder Präfixe aufzulisten, geben Sie erweiterte Filterparameter an, um Metadaten zu Storage Insights dynamisch abzufragen. Weitere Informationen finden Sie auf dem Tab „JSON API“ unter Job mit erweiterten Filtern erstellen.
  • Buckets als Quelle: Richtet sich mit einer bucketList-Konfiguration auf Objekte in bestimmten Buckets. Sie müssen die Ziel-Buckets und entweder eine Manifest-CSV-Datei (manifest_location) oder Objektpräfixe (include_object_prefixes) angeben.
  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 Job für Storage-Batchvorgänge. 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",
              "storage_class":"STORAGE_CLASS_VALUE"
              }
            "PutMetadata":{
              "METADATA_KEY": "METADATA_VALUE",
              ...,
              "objectRetention": {
                  "retainUntilTime": "RETAIN_UNTIL_TIME",
                  "mode": "RETENTION_MODE"
                 }
               }
            "PutObjectHold": {
              "temporary_hold": TEMPORARY_HOLD_VALUE,
              "event_based_hold": EVENT_BASED_HOLD_VALUE
            },
            "updateObjectCustomContext": {
               "customContextUpdates": {
                  "updates": {
                     "CONTEXT_KEY": { "value": "CONTEXT_VALUE" }
                  },
                  "keysToClear": ["CONTEXT_KEY_TO_CLEAR"]
               },
               "clearAll": CLEAR_ALL_VALUE
            },
            "SetObjectAcls": {
               "accessControlsUpdates": {
                  "grants": [
                     { "entity": "allUsers", "role": "READER" }
                  ],
                  "removeEntities": ["allAuthenticatedUsers"]
               }
            },
            "dryRun": DRY_RUN_VALUE
            }
             
    Where:
    
    • JOB_NAME ist der Name des Jobs für Storage-Batchvorgänge.

    • JOB_DESCRIPTION ist die Beschreibung des Jobs für Storage-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 Objekte anzugeben, die Sie verarbeiten möchten:

      • 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 kundenverwalteten 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.

      • Aktualisieren Sie die Speicherklasse für Objekte:

        "RewriteObject":
          {
          "storage_class": STORAGE_CLASS_VALUE
          }

        Dabei ist STORAGE_CLASS_VALUE die neue Speicherklasse, in die die Objekte migriert werden sollen. Unterstützte Speicherklassen sind STANDARD, NEARLINE, COLDLINE und ARCHIVE.

      • 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 für die 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 dem 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 der beiden Felder festlegen, wird der Fehler INVALID_ARGUMENT zurückgegeben.
          • Sie können den RETAIN_UNTIL_TIME-Wert für Objekte sowohl im Unlocked- als auch im Locked-Modus verlängern.
          • Die Objektaufbewahrung muss im Modus Unlocked sein, wenn Sie Folgendes tun möchten:
            • Reduzieren Sie den Wert von RETAIN_UNTIL_TIME.
            • Entfernen Sie die Konfiguration für die Aufbewahrung. 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 Konfiguration für die Aufbewahrungsdauer unverändert.
        • Objekt-Holds aktualisieren:

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

          Wobei:

          • Mit TEMPORARY_HOLD_VALUE wird der temporäre Objekt-Hold aktiviert oder deaktiviert. Der Wert 1 aktiviert den Hold und der Wert 2 deaktiviert ihn.

          • EVENT_BASED_HOLD_VALUE wird verwendet, um den ereignisbasierten Objekt-Hold zu aktivieren oder zu deaktivieren. Der Wert 1 aktiviert den Hold und der Wert 2 deaktiviert ihn.

        • 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 gesetzt, um alle vorhandenen Objektkontexte zu löschen.
        • Objekt-ACLs aktualisieren:

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

          Wobei:

          • ENTITY_NAME ist die Entität, für die der Zugriff hinzugefügt oder aktualisiert werden soll, z. B. allUsers, allAuthenticatedUsers oder ein bestimmter Nutzer oder eine bestimmte Gruppe.
          • ROLE_NAME ist die Rolle, die zugewiesen werden soll. Beispiele: READER, OWNER
          • ENTITY_TO_REMOVE ist die Entität, deren Anmeldedaten Sie entfernen möchten.
      • DRY_RUN_VALUE ist ein optionaler boolescher Wert. Legen Sie true fest, um den Job im Probelaufmodus auszuführen. Der Standardwert ist false.

      1. Verwenden Sie curl, um die JSON API mit einer Anfrage für einen POST-Storage-Batchvorgangsjob 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 Storage-Batchvorgänge.

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

In diesem Abschnitt wird beschrieben, wie Sie die Jobdetails für Storage-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-Batchvorgangsjobs benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Console

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Bucket-Liste auf den Namen des Buckets, der mit dem Vorgang verknüpft ist.
  3. Klicken Sie auf der Seite Bucket-Details auf den Tab Vorgänge.
  4. Klicken Sie in der Liste der Vorgänge auf die Vorgangs-ID des Jobs, den Sie aufrufen möchten.
  5. Auf der Detailseite werden auf dem Tab Übersicht Messwerte für Ihren Job angezeigt, z. B. die Anzahl der erkannten und verarbeiteten Objekte sowie alle aufgetretenen Fehler.
  6. Sehen Sie sich in der Tabelle Fehlerzusammenfassung die Details zum Ausführungsfehler an oder klicken Sie auf In Cloud Logging ansehen, um Datensätze aufzurufen.
  7. Klicken Sie auf den Tab Konfiguration, um die Konfigurationseinstellungen für den Job aufzurufen.

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_NAME

    Wobei:

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

    Wenn Sie einen Job im Probelauf 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: Zeigt die Gesamtgröße der betroffenen Objekte an. Dieses Feld wird nur angezeigt, wenn Sie Objektpräfixe für die Objektauswahl verwenden.

    Wenn der Vorgang erfolgreich war, sieht die Antwort für den Probelaufjob 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 gelöscht, falls vorhanden.
    • Objektkontexte wurden aktualisiert, sofern zutreffend. Mit diesem Zähler werden Aktualisierungen an vorhandenen Kontextschlüsseln erfasst.

    Die Antwort für eine tatsächliche Jobausführung 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 Referenzdokumentation zur Cloud Storage PHP 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.

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

JSON API

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Verwenden Sie cURL, um die JSON API mit einer Anfrage für einen GET-Storage-Batchvorgangsjob aufzurufen:

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

    Wobei:

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

    Wenn Sie einen Job im Probelauf 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: Zeigt die Gesamtgröße der betroffenen Objekte an. Dieses Feld wird nur angezeigt, wenn Sie Objektpräfixe für die Objektauswahl verwenden.

    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 gelöscht, falls vorhanden.
    • Objektkontexte wurden aktualisiert, sofern zutreffend. Mit diesem Zähler werden Aktualisierungen an vorhandenen Kontextschlüsseln erfasst.

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

Bucket-Vorgänge auflisten

Bei Jobs mit mehreren Buckets können Sie den Fortschritt und Status von Vorgängen für einzelne Buckets ansehen. Führen Sie den Befehl gcloud storage batch-operations bucket-operations list aus, um die Vorgänge aufzulisten, die für einen bestimmten Job für Buckets ausgeführt wurden:

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

Mit dem Flag --buckets können Sie die Liste auch nach bestimmten Buckets filtern:

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

Im folgenden Beispiel wird gezeigt, wie Sie Vorgänge für bucket1 und bucket2 für den Job my-job auflisten:

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

Wobei:

  • JOB_NAME ist der eindeutige Name des Jobs für Speicher-Batchvorgänge, den Sie erstellt haben. Beispiel: my-job.
  • BUCKET_NAME_LIST ist eine durch Kommas getrennte Liste von Bucket-Namen ohne Leerzeichen zwischen den Namen. Beispiel: bucket1,bucket2.

Bucket-Vorgang beschreiben

Sie haben zwei Möglichkeiten, Details zu einem bestimmten Bucket-Vorgang aufzurufen:

  • Verwenden Sie den Befehl gcloud storage batch-operations bucket-operations describe mit dem Flag für den Namen der Vorgangsressource:

    gcloud alpha storage batch-operations bucket-operations describe BUCKET_OPERATION_RESOURCE_NAME

    Wobei:

    • BUCKET_OPERATION_RESOURCE_NAME ist der vollständige Ressourcenpfad des Bucket-Vorgangs. Beispiel: projects/my-project/locations/global/jobs/my-job/bucketOperations/bo-1.
  • Verwenden Sie den Befehl gcloud storage batch-operations bucket-operations describe mit den Flags für die Vorgangs-ID des Vorgangs-Buckets und die Job-ID:

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

    Wobei:

    • BUCKET_OPERATION_ID ist die ID des Bucket-Vorgangs.
    • JOB_NAME ist der eindeutige Name des von Ihnen erstellten Jobs für Speicher-Batchvorgänge. Beispiel: my-job.

Jobs für Storage-Batchvorgänge auflisten

In diesem Abschnitt wird beschrieben, wie Sie die Jobs für Storage-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.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Console

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Bucket-Liste auf den Namen des Buckets, der mit dem Vorgang verknüpft ist.
  3. Klicken Sie auf der Seite Bucket-Details auf den Tab Vorgänge. Auf der Seite Vorgänge wird eine Liste der aktiven Vorgänge angezeigt.

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 Referenzdokumentation zur Cloud Storage PHP 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.

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

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 Anfrage für LIST-Storage-Batchvorgänge 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 Storage-Batchvorgänge abbrechen

In diesem Abschnitt wird beschrieben, wie Sie einen Storage-Batchvorgang-Job 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 Storage-Batchvorgangs benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Console

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Bucket-Liste auf den Namen des Buckets, der mit dem Storage-Batchvorgang verknüpft ist, den Sie abbrechen möchten.

  3. Klicken Sie auf den Tab Vorgänge. Auf diesem Tab wird eine Liste der Batchvorgangsjobs angezeigt. Sie können nur Jobs abbrechen, die gerade ausgeführt werden.

  4. Wählen Sie in der Liste der Vorgänge einen oder mehrere Jobs aus, die Sie abbrechen möchten, und klicken Sie dann auf Abbrechen.

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_NAME

    Wobei:

    JOB_NAME ist der Name des Jobs für Storage-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 Referenzdokumentation zur Cloud Storage PHP 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.

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

JSON API

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Verwenden Sie cURL, um die JSON API mit einer Anfrage zum CANCEL-Job für Storage-Batchvorgänge aufzurufen:

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

    Wobei:

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

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

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

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

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

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Console

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Bucket-Liste auf den Namen des Buckets, der mit dem Storage-Batchvorgang verknüpft ist, den Sie löschen möchten.

  3. Klicken Sie auf den Tab Vorgänge. Auf diesem Tab wird eine Liste der Batchvorgangsjobs angezeigt. Sie können nur Jobs löschen, die nicht ausgeführt werden, z. B. Jobs, die erfolgreich waren, fehlgeschlagen sind oder abgebrochen wurden.

  4. Wählen Sie in der Liste der Vorgänge einen oder mehrere Jobs aus, die Sie löschen möchten, und klicken Sie dann auf Löschen.

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_NAME

    Wobei:

    JOB_NAME ist der Name des Jobs für Storage-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 Referenzdokumentation zur Cloud Storage PHP 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.

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

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 Anfrage zum DELETE-Job für Storage-Batchvorgänge aufzurufen:

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

    Wobei:

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

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

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

Wählen Sie eine der folgenden Optionen aus, um einen Batchvorgangsjob für Objekte auszuführen, die in einem Dataset aufgeführt sind:

  • Erweiterte Filter verwenden: Objekte auf Projektebene direkt im Google Cloud CLI-Befehl dynamisch filtern.

    Storage Insights-Datasets werden aus regelmäßigen Snapshots Ihrer Speichermetadaten zu einem bestimmten Zeitpunkt erstellt. Jeder Snapshot hat eine Snapshot-Zeit, die angibt, wann die Metadaten erfasst wurden. Wenn Sie einen Batchjob mit erweiterten Filtern ausführen, wird anhand dieses Snapshot-Zeitpunkts bestimmt, welche Objekte und Versionen verarbeitet werden. Standardmäßig wird bei Storage-Batchvorgängen automatisch der letzte Snapshot-Zeitpunkt ausgewählt. Um Vorgänge mit veralteten Daten zu vermeiden, schlägt die Joberstellung fehl, wenn der ausgewählte Snapshot älter als zwei Tage ist. Informationen zur Behebung dieses Fehlers finden Sie unter Fehlerbehebung bei Storage-Batchvorgängen.

  • Manifestdatei verwenden: Generieren Sie eine CSV-Manifestdatei, indem Sie eine BigQuery-Abfrage ausführen, und stellen Sie sie dann für den Job bereit.

Die Methoden werden in den folgenden Abschnitten beschrieben.

Erweiterte Filter verwenden

Anstatt eine Manifestdatei zu erstellen, können Sie CEL-Filter (Common Expression Language) verwenden, um Objekte direkt anhand von Feldern in Ihrem Storage Insights-Dataset auszuwählen. Sie können Jobs für mehrere Buckets in einem Projekt ausführen. Wenn Sie Dataset-Filter für die Objektauswahl verwenden, werden bei Storage-Batchvorgängen Objekte berücksichtigt, die zum Zeitpunkt des ausgewählten Dataset-Snapshots aktiv und aktuell sind. Daher enthält der Job nur Objekte, die zum Zeitpunkt des Snapshots sowohl für softDeleteTime als auch für timeDeleted den Wert NULL haben.

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 den Befehl gcloud storage batch-operations jobs create aus:

    gcloud storage batch-operations jobs create JOB_NAME \
    {--insights-dataset-config=INSIGHTS_DATASET_CONFIG_RESOURCE_NAME --target-project=TARGET_PROJECT [--bucket-filters=BUCKET_FILTER_CEL] [--object-filters=OBJECT_FILTER_CEL] [--target-locations=TARGET_LOCATIONS] [--target-snapshot-time=TARGET_SNAPSHOT_TIME] | --dry-run-job-id=DRY_RUN_JOB_ID} \
    --JOB_TYPE_FLAG

    Wobei:

    • JOB_NAME ist der Name des Jobs für Storage-Batchvorgänge.
    • INSIGHTS_DATASET_CONFIG_RESOURCE_NAME: Der Ressourcenname der Dataset-Konfiguration. Beispiel: projects/{project-id}/locations/{location-id}/datasetConfigs/{dataset_config_id} Sie müssen diesen Parameter angeben, bevor Sie die Flags --bucket-filters und --object-filters verwenden.
    • TARGET_PROJECT: Die Projekt-ID oder Projektnummer, die den Zielressourcen zugeordnet ist.
    • BUCKET_FILTER_CEL und OBJECT_FILTER_CEL (optional): Die CEL-Filterausdrücke, die zum Auswählen von Objekten verwendet werden. Hier einige Beispiele:
      • --bucket-filters="name in ['bucket-1', 'bucket-2']"
      • --object-filters="size >= 5000 && name.endsWith('.pdf')" Informationen zu unterstützten Feldern, Operatoren und Funktionen finden Sie in der CEL-Filterreferenz.
    • TARGET_LOCATIONS (Optional): Eine Liste der Cloud Storage-Standorte, mit denen der Jobbereich eingeschränkt wird. Beispiel: us,us-central1,us-east4 Mit diesem Parameter können Sie Standorte ausschließen, an denen ein Dienstausfall vorliegt. Wenn nur TARGET_LOCATIONS angegeben und TARGET_SNAPSHOT_TIME weggelassen wird, wählt der Job automatisch den neuesten Snapshot-Zeitstempel aus, der sowohl in der Objekt- als auch in der Bucket-Attributansicht an allen angegebenen Standorten erfolgreich ausgefüllt wurde.
    • TARGET_SNAPSHOT_TIME (optional): Der UTC-Zeitstempel des zu verwendenden Dataset-Snapshots im RFC 3339-Format. Beispiel: 2026-05-03T16:00:00Z. Dieser Snapshot muss in allen Ihren Bucket- und Objektattributansichten vorhanden sein. Wenn Sie diesen Parameter angeben, müssen Sie auch den Parameter TARGET_LOCATIONS angeben.
    • DRY_RUN_JOB_ID: Die Kennung eines zuvor ausgeführten Testlaufs. Wenn Sie diesen Parameter angeben, können Sie keine anderen Parameter für die Objektauswahl angeben, einschließlich --insights-dataset-config, --target-project, --bucket-filters, --object-filters, --target-locations und --target-snapshot-time. Beim aktiven Job werden alle Auswahlkriterien direkt aus dem Probejob abgerufen.
    • JOB_TYPE_FLAG: Das Flag für den Massenvorgang, den Sie ausführen möchten, z. B. --put-metadata oder --delete-object.

JSON API

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Authorization-Header zu generieren.

  2. Erstellen Sie eine JSON-Konfigurationsdatei, in der die Dataset-Filter und Einstellungen für Bulk-Vorgänge angegeben werden. Beispiel:

    {
        "description": "JOB_DESCRIPTION",
        "projectSource": {
            "project": "projects/TARGET_PROJECT",
            "insightsDatasetConfig": "INSIGHTS_DATASET_CONFIG_RESOURCE_NAME",
            "bucketFilters": {
                "expression": "BUCKET_FILTER_CEL"
            },
            "objectFilters": {
                "expression": "OBJECT_FILTER_CEL"
            },
            "snapshotTime": "SNAPSHOT_TIME",
            "targetLocations": {
                "locations": ["LOCATION_1", "LOCATION_2"]
            }
        },
        "deleteObject": {
            "permanentObjectDeletionEnabled": OBJECT_DELETION_VALUE
        }
     }

    Wobei:

    • JOB_DESCRIPTION ist die Beschreibung des Jobs.
      • TARGET_PROJECT ist die Projekt-ID oder Projektnummer, die mit den Zielobjekten verknüpft ist.
    • INSIGHTS_DATASET_CONFIG_RESOURCE_NAME ist der vollständig qualifizierte Ressourcenname der Dataset-Konfiguration (z. B. projects/{project-id}/locations/{location-id}/datasetConfigs/{dataset_config_id}).
    • BUCKET_FILTER_CEL ist der CEL-Filterausdruck für Buckets. Beispiel: name in ['bucket-1', 'bucket-2']. Weitere Informationen zu unterstützten Schlüsselwörtern, Feldern und Operatoren finden Sie in der CEL-Filterreferenz.
    • OBJECT_FILTER_CEL ist der CEL-Filterausdruck für Objekte. Beispiel: size >= 5000 && name.endsWith('.pdf').
    • snapshotTime (optional): Ein bestimmter UTC-Zeitstempel im RFC 3339-Format (z. B. "2026-05-03T16:00:00Z"), der angibt, welcher Dataset-Snapshot verwendet werden soll. Diese Momentaufnahme muss sowohl in Ihren Bucket- als auch in Ihren Objektdatensatzansichten an allen Zielstandorten vorhanden sein. Wenn Sie dieses Feld angeben, müssen Sie auch das Feld targetLocations angeben.
    • targetLocations (Optional): Ein JSON-Objekt, das eine Liste von Cloud Storage-Speicherorten (z. B. ["us", "us-central1", "us-east4"]) zur Filterung des Jobbereichs angibt. Wenn bei Abhängigkeiten an bestimmten Standorten ein Ausfall auftritt, können Sie den Job auf bestimmte Standorte beschränken. Wenn nur targetLocations angegeben und snapshotTime weggelassen wird, wählt der Job automatisch den neuesten Snapshot-Zeitstempel aus, der sowohl in der Objekt- als auch in der Bucket-Attributansicht an allen angegebenen Standorten erfolgreich ausgefüllt wurde.
    • OBJECT_DELETION_VALUE ist der boolesche Wert, mit dem das endgültige Löschen aktiviert oder deaktiviert wird. Beispiel: true oder false
  3. Senden Sie eine POST-Anfrage mit cURL, um den Job auszuführen:

    curl -X POST \
         -H "Authorization: Bearer OAUTH2_TOKEN" \
         -H "Content-Type: application/json" \
         -d @JSON_FILE_NAME \
         "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?job_id=JOB_NAME"

    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 Storage-Batchvorgänge.

Manifestdatei verwenden

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 Storage-Batchvorgangsjobs benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte 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 Storage-Batchvorgangsjob kann diese CSV-Datei dann als Manifest verwenden.

Wenn Sie die folgende SQL-Abfrage in BigQuery für eine Storage Insights-Dataset-Ansicht 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, das 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 gesetzt ist, werden vorhandene Dateien am angegebenen Speicherort durch den Exportvorgang überschrieben.
  • DATASET_VIEW_NAME ist der vollständig qualifizierte Name der Storage Insights-Dataset-Ansicht im Format PROJECT_ID.DATASET_ID.VIEW_NAME. So finden Sie den Namen Ihres Datasets.

    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 Storage-Batchvorgänge mit einer Manifestdatei erstellen

So erstellen Sie einen Storage-Batchvorgangsjob, um im Manifest enthaltene Objekte zu verarbeiten:

Console

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets, der die Objekte enthält, für die Sie Batchvorgänge ausführen möchten.

    Die Seite Bucket-Details wird geöffnet und der Tab Objekte ist ausgewählt.

  3. Klicken Sie auf Batchvorgänge erstellen.
  4. Wählen Sie im Bereich Vorgang auswählen den Vorgangstyp aus:
    • Objekt-Holds verwalten: Wählen Sie Temporärer Hold oder Ereignisbasierter Hold aus. Weitere Informationen finden Sie unter Objekt-Holds.
    • Objektmetadaten aktualisieren: So fügen Sie Objektmetadaten hinzu:
      • So fügen Sie benutzerdefinierte Metadaten hinzu:
        1. Geben Sie im Feld Schlüssel einen Schlüsselnamen ein.
        2. Geben Sie im Feld Wert einen Wert für diesen Schlüssel ein.
        3. Optional: Klicken Sie auf + Element hinzufügen, um weitere Schlüssel/Wert-Paare hinzuzufügen.
      • So aktualisieren Sie Metadaten mit festen Schlüsseln:
        1. Klicken Sie zum Maximieren des Abschnitts Metadaten mit festen Schlüsseln aktualisieren auf den Erweiterungspfeil.
        2. Wählen Sie in der Liste Wählen Sie mindestens einen Satz Metadaten aus, der aktualisiert werden soll die Metadatenelemente aus, die Sie bearbeiten möchten.
    • Verschlüsselungsschlüssel aktualisieren/rotieren: So verwenden oder aktualisieren Sie den Verschlüsselungsschlüssel für Objekte:
      1. Wählen Sie in der Liste Cloud KMS-Schlüssel auswählen einen vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) aus.
      2. Optional: Wählen Sie Projekt wechseln aus, um einen Schlüssel aus einem anderen Projekt auszuwählen, oder wählen Sie Schlüssel manuell eingeben aus, um Details einzugeben.
    • Objekte löschen: So löschen Sie Objekte:
      1. Prüfen, ob die Objektversionsverwaltung aktiviert ist
      2. Wenn die Objektversionsverwaltung aktiviert ist, wählen Sie eine der folgenden Löschoptionen aus:

        • Wählen Sie Alle Versionen der Objekte löschen aus, um sowohl Live- als auch nicht aktuelle Versionen zu entfernen.
        • Wählen Sie Live-Versionen dauerhaft löschen aus, um nur die Live-Version zu entfernen.

        Wenn die Objektversionsverwaltung nicht aktiviert ist, werden alle zum Löschen ausgewählten Objekte dauerhaft gelöscht.

  5. Klicken Sie auf Weiter.
  6. Führen Sie im Bereich Vorgang benennen und Objekte angeben die folgenden Schritte aus:
    1. Geben Sie im Feld Name einen Namen ein.
    2. Optional: Geben Sie im Feld Beschreibung eine Beschreibung ein.
    3. Wählen Sie im Bereich Objekte angeben die Option Listen von Objekten mithilfe von CSV-Manifestdateien hochladen aus und gehen Sie dann so vor:

      1. Laden Sie die CSV-Manifestdatei in einen Bucket hoch. Diese Datei muss Header für Bucket-Name, Objektschlüssel und Generationsnummer enthalten.
      2. Wählen Sie in der Liste Modus für Manifestdatei auswählen eine der folgenden Optionen aus:
        • Wenn Sie Manifestdatei in Cloud Storage auswählen auswählen, klicken Sie im Feld Manifestdatei in Cloud Storage auswählen auf Durchsuchen. Suchen Sie im Dialogfeld Objekt auswählen nach Ihrer Manifest-CSV-Datei und klicken Sie dann auf Auswählen.
        • Wenn Sie Mehrere Manifestdateien mit Platzhalter auswählen auswählen, geben Sie den Dateipfad im Feld Speicherort der Manifestdatei mit Platzhalter eingeben ein. Beispiel: bucket-name/folder/manifest_*
  7. Klicken Sie auf Erstellen.

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_NAME \
    {--bucket=SOURCE_BUCKET | --bucket-list=SOURCE_BUCKET_LIST} \
    --manifest-location=URI \
    JOB_TYPE_FLAG

    Wobei:

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

    • SOURCE_BUCKET ist der Name des Buckets, der die Objekte enthält, die Sie verarbeiten möchten. Beispiel: my-bucket.

    • SOURCE_BUCKET_LIST ist eine durch Kommas getrennte Liste mit einem oder mehreren Bucket-Namen, die die Objekte enthalten, die Sie verarbeiten möchten. Beispiel: bucket1,bucket2.

    • URI ist der URI des Buckets, das 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.

      • --delete-object: Ein oder mehrere Objekte löschen.

      • --put-metadata: Objektmetadaten aktualisieren. Objektmetadaten werden als Schlüssel/Wert-Paare gespeichert. Geben Sie das Schlüssel/Wert-Paar für die Metadaten an, die Sie ändern möchten. Sie können ein oder mehrere Schlüssel/Wert-Paare als Liste angeben. Sie können auch Konfigurationen für die Objektaufbewahrung mit dem Flag --put-metadata angeben.

      • --rewrite-object: Aktualisieren Sie die kundenverwalteten Verschlüsselungsschlüssel für ein oder mehrere Objekte. Sie können dieses Flag auch verwenden, um die Speicherklasse des Objekts zu ändern, indem Sie den storage-class-Schlüssel angeben. Unterstützte Speicherklassen sind STANDARD, NEARLINE, COLDLINE und ARCHIVE. Beispiel: --rewrite-object=storage-class=NEARLINE.

      • --set-object-acls-from-file: Patch-Objekt-ACLs (Access Control Lists). Geben Sie den Pfad zu einer JSON- oder YAML-Datei mit Berechtigungen an, die für Entitäten wie allUsers oder allAuthenticatedUsers hinzugefügt oder aktualisiert werden sollen. Beispiel: --set-object-acls-from-file=acl-updates.yaml.

      • --put-object-event-based-hold: Eventbasierte Objekt-Holds aktivieren.

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

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

      • --no-put-object-temporary-hold: Deaktiviert temporäre Objekt-Holds.

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

        Im folgenden Beispiel wird gezeigt, 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: Kontexte mit bestimmten Schlüsseln entfernen. Sie können auch bestimmte Kontexte aktualisieren und gleichzeitig Schlüssel entfernen, indem Sie das Flag --clear-object-custom-contexts und eines der folgenden Flags verwenden:

        • --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 zu entfernen und den Kontext mit den Schlüsseln project-id und cost-center für alle in manifest.csv aufgeführten Objekte 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

VPC Service Controls bietet eine zusätzliche Sicherheitsebene für Ressourcen für Storage-Batchvorgänge. Wenn Sie Projekte in einen Dienstperimeter einfügen, schützen Sie Ressourcen und Dienste vor Anfragen, die ihren Ursprung außerhalb des Perimeters haben. Weitere Informationen zu den Details von VPC Service Controls-Dienstperimetern für Speicher-Batchvorgänge finden Sie unter Unterstützte Produkte und Einschränkungen.

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

Bei Storage-Batchvorgängen werden Transformationen von Cloud Storage-Objekten in Cloud-Audit-Logs für Cloud Storage aufgezeichnet. Verwenden Sie Cloud-Audit-Logs mit Cloud Storage, um diese Transformationen zu verfolgen. Weitere Informationen zum Aktivieren von Audit-Logs finden Sie unter Audit-Logs aktivieren. Im Audit-Log-Eintrag gibt das Metadatenfeld callUserAgent mit dem Wert StorageBatchOperations an, dass die Transformation durch Storage-Batchvorgänge ausgeführt wurde.

Nächste Schritte