Objektkontexte sind benutzerdefinierte Schlüssel/Wert-Paare, die Sie an Cloud Storage-Objekte anhängen können. Mit Objektkontexten können Sie Daten klassifizieren, Verarbeitungsworkflows verfolgen und Ihre Objekte mit Metadaten anreichern. Diese Kontexte bleiben erhalten, wenn Sie Objekte kopieren, erstellen oder wiederherstellen.
Auf dieser Seite wird beschrieben, wie Sie Kontexte an Cloud Storage-Objekte anhängen und verwalten.
Erforderliche Rollen abrufen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Objekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwalten von Objektkontexten benötigen:
-
Objekte mit Kontexten erstellen:
Storage-Objekt-Ersteller (
roles/storage.objectCreator) -
Kontexte an Objekte anhängen, aktualisieren, ansehen und löschen sowie vollständige Kontextdarstellungen (einschließlich erweiterter Daten) ansehen:
Storage-Objekt-Nutzer (
roles/storage.objectUser) -
Kontextschlüssel und ‑werte ansehen:
Storage-Objekt-Betrachter (
roles/storage.objectViewer) -
Objektkontexte während des Umschreibens, Kopierens und Erstellens löschen:
Inhaber alter Storage-Objekte (
roles/storage.legacyObjectOwner)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen und Verwalten von Objektkontexten erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Objektkontexte zu erstellen und zu verwalten:
-
Objekt mit Objektkontexten erstellen:
-
storage.objects.create -
storage.objects.createContext
-
-
Objektkontexte anhängen, aktualisieren und löschen:
-
storage.objects.update -
storage.objects.createContext -
storage.objects.updateContext -
storage.objects.deleteContext
-
-
Objektkontexte löschen:
storage.objects.dropContexts -
Objektkontexte ansehen:
-
storage.objects.get -
storage.objects.list
-
-
Vollständigen Kontext eines Objekts ansehen, einschließlich erweiterter Daten (Vorschau):
storage.objects.viewFullContext
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Anforderungen an die Benennung von Schlüssel/Wert-Paaren
Sowohl Schlüssel als auch Werte für benutzerdefinierte Kontexte müssen die folgenden Anforderungen erfüllen:
Muss zwischen 1 und 256 Zeichen lang sein (einschließlich).
Muss mit einem alphanumerischen Zeichen beginnen.
Muss ein gültiges UTF-8-Zeichen sein. Die meisten UTF-8-Zeichen werden unterstützt, mit Ausnahme der folgenden:
Einfaches Anführungszeichen (
')Doppeltes Anführungszeichen (
")Umgekehrter Schrägstrich (
\)Schrägstrich (
/)
Kontextschlüssel, die mit dem Präfix
google:beginnen (z. B.google:annotation:face-detector-v1), sind für von Google generierte Kontexte reserviert. Sie können keine neuen Kontexte mit dem Präfixgoogle:erstellen oder deren Werte ändern. Wenn Sie dies versuchen, gibt Cloud Storage einenINVALID_ARGUMENT-Fehler zurück. Wenn Sie Kontexte mit dem Präfixgoogle:entfernen möchten, müssen Sie sie während eines Umschreibevorgangs mit dem ParameterdropContextGroupsverwerfen.
Kontexte an neue Objekte anhängen
Kontexte an Objekte anhängen, wenn Sie neue Objekte in Cloud Storage-Buckets hochladen. Jeder Kontext besteht aus einem Schlüssel und einem Wert.
Console
- Wechseln Sie in der Cloud de Confiance Console unter „Cloud Storage“ zur Seite Buckets.
Folgen Sie der Anleitung, um Kontexte an das Objekt anzuhängen.
Befehlszeile
Wenn Sie beim Hochladen von Objekten mit dem Befehl gcloud storage cp Kontexte anhängen möchten, verwenden Sie das Flag --custom-contexts:
gcloud storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME --custom-contexts=KEY=VALUE,...
Wobei:
OBJECT_LOCATIONist der lokale Pfad zu Ihrem Objekt. Beispiel:Desktop/employees.txt.DESTINATION_BUCKET_NAMEist der Name des Buckets, in den Sie das Objekt hochladen. Beispiel:my-bucketKEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department. Sie können mehrere durch Kommas getrennte Schlüssel/Wert-Paare angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
Alternativ können Sie eine JSON-Datei mit den Kontexten erstellen, die Sie den Objekten zuweisen möchten, und das Flag --custom-contexts-file verwenden:
{ "KEY": { "value": "VALUE" }, ... }
Wobei:
KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department. Sie können mehrere Schlüssel/Wert-Paare angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
Wenn Sie Verzeichnisse mit dem Befehl
gcloud storage rsync hochladen, können Sie Kontexte mit dem Flag
--custom-contexts oder --custom-contexts-file anhängen:
gcloud storage rsync DIRECTORY_LOCATION gs://DESTINATION_BUCKET_NAME --recursive --custom-contexts=KEY=VALUE,...
Wobei:
DIRECTORY_LOCATIONist der lokale Pfad zu Ihrem Verzeichnis. Beispiel:~/my_directory.DESTINATION_BUCKET_NAMEist der Name des Buckets, in den Sie das Verzeichnis hochladen. Beispiel:my-bucketKEYist der Kontextschlüssel, der an Objekte angehängt werden soll. Beispiel:Department. Sie können mehrere durch Kommas getrennte Schlüssel/Wert-Paare angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
JSON API
Wenn Sie neue Objekte hochladen, können Sie mit einer der folgenden Methoden Kontexte an Objekte anhängen:
Fügen Sie das Feld contexts in die Objektmetadaten im JSON-Format ein:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
Wobei:
KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department. Sie können im Objektcustommehrere Schlüssel/Wert-Paare angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
Kontexte an ein vorhandenes Objekt anhängen oder ändern
Sie können Objekten in Cloud Storage-Buckets neue Kontexte zuweisen oder vorhandene Kontexte aktualisieren.
Nur Google-Dienste wie Jobs zur Objektkontext-Anreicherung können Kontexte mit erweiterten Daten generieren und anhängen, die das reservierte Schlüsselpräfix google: verwenden. Sie können keine erweiterten Daten an nutzerdefinierte Kontexte anhängen und keine Kontextschlüssel erstellen oder ändern, die mit dem Präfix google: beginnen. Wenn Sie versuchen, google:-Schlüssel zu erstellen oder zu ändern, gibt Cloud Storage den Fehler INVALID_ARGUMENT zurück.
Wenn ein vorhandener Kontext erweiterte Daten enthält, behält Cloud Storage diesen Kontext für das aktualisierte Objekt bei Aktualisierungs- und Patchvorgängen bei. Wenn Sie einen Kontextwert auf null setzen, werden nur Kontexte gelöscht, die keine erweiterten Daten enthalten. Informationen zum Aufrufen erweiterter Daten finden Sie unter Vollständigen Objektkontext ansehen. Wenn Sie einen Kontext mit erweiterten Daten entfernen möchten, einschließlich Kontexten mit dem Präfix google:, müssen Sie ihn mit dem Parameter dropContextGroups während eines Rewrite-Vorgangs verwerfen.
Console
- Wechseln Sie in der Cloud de Confiance Console unter „Cloud Storage“ zur Seite Buckets.
Klicken Sie in der Liste der Buckets auf den Namen des Buckets, der das Objekt enthält.
Rufen Sie das Objekt auf und klicken Sie dann auf Objekt-Dreipunkt-Menü öffnen.
Klicken Sie auf Kontexte bearbeiten.
Führen Sie im Bereich Kontexte bearbeiten einen der folgenden Schritte aus:
So fügen Sie einen neuen Objektkontext hinzu:
Klicken Sie auf Benutzerdefinierten Kontext hinzufügen.
Geben Sie in die Felder Objektkontextschlüssel und Objektkontextwert ein neues Schlüssel/Wert-Paar ein.
Klicken Sie auf Fertig.
Optional: Wenn Sie weitere Objektkontexte hinzufügen möchten, klicken Sie auf Benutzerdefinierten Kontext hinzufügen, wiederholen Sie die vorherigen Schritte und klicken Sie dann auf Speichern.
Objektkontext bearbeiten:
Klicken Sie auf den Objektkontext.
Aktualisieren Sie das Feld Schlüssel des Objektkontexts, das Feld Wert des Objektkontexts oder beide.
Klicken Sie auf Fertig und anschließend auf Speichern.
So löschen Sie einen Objektkontext:
Klicken Sie auf Löschen und dann auf Speichern.
Befehlszeile
Führen Sie den Befehl gcloud storage objects update aus:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME CUSTOM_CONTEXTS_FLAG
Wobei:
BUCKET_NAMEist der Name des Buckets, der das Objekt enthält, für das Sie den Kontext bearbeiten möchten. Beispiel:my-bucketOBJECT_NAMEist der Name des Objekts. Beispiel:employees.txt.CUSTOM_CONTEXTS_FLAGist eines der folgenden Flags:Verwenden Sie
--custom-contexts=KEY=VALUE,...oder--custom-contexts-file=CUSTOM_CONTEXTS_FILE, um alle vorhandenen Kontexte zu ersetzen.Wobei:
KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department. Sie können mehrere durch Kommas getrennte Schlüssel/Wert-Paare angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.CUSTOM_CONTEXTS_FILEist der Pfad zur JSON- oder YAML-Datei, die die Kontexte enthält, die Sie an das Objekt anhängen möchten.
Verwenden Sie zum Löschen aller vorhandenen Kontexte das Flag
--clear-custom-contexts.Wenn Sie einzelne Kontexte hinzufügen, ändern oder löschen möchten, verwenden Sie eine Kombination aus
--update-custom-contexts=KEY=VALUE,...und--remove-custom-contexts=KEY,....Wobei:
KEYist der Kontextschlüssel, den Sie an ein Objekt anhängen oder daraus löschen möchten. Beispiel:Department.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll, den Sie an ein Objekt anhängen oder daraus löschen möchten. Beispiel:Human resources
Wenn der Vorgang erfolgreich ausgeführt wurde, sieht die Antwort in etwa so aus:
Patching gs://my-bucket/employees.txt#1560574162144861... Completed 1
Clientbibliotheken
Java
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java 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.
Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.
Rust
JSON API
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den
Authorization-Header zu generieren.Erstellen Sie eine JSON-Datei mit den Einstellungen für das Objekt, die die Konfigurationsfelder
contextsfür das Objekt enthalten muss.Verwenden Sie das folgende Format, um vorhandene Kontexte hinzuzufügen, zu ändern oder zu überschreiben:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
Wobei:
KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department. Sie können mehrere Schlüssel/Wert-Paare imcustom-Objekt angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources
Verwenden Sie das folgende Format, um alle vorhandenen Kontexte zu löschen:
{ "contexts": { "custom": null } }
Verwenden Sie das folgende Format, um einen bestimmten Schlüssel aus dem Kontext zu löschen:
{ "contexts": { "custom": { "KEY": null, ... } } }
Wobei:
KEYist der Kontextschlüssel, den Sie aus einem Objekt löschen möchten. Beispiel:Department. Sie können mehrere Schlüssel angeben, die aus demcustom-Objekt gelöscht werden sollen.Verwenden Sie
cURL, um die JSON API mit einerPATCH-Objektanfrage aufzurufen:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Wobei:
JSON_FILE_NAMEist der Pfad zur Datei, die die Informationen zu den Objektkontexten enthält.BUCKET_NAMEist der Name des Buckets, der das Objekt enthält, für das Sie den Kontext bearbeiten möchten. Beispiel:my-bucket.OBJECT_NAMEist der URL-codierte Name des Objekts. Beispiel:employees.txt.
Alternativ können Sie den Kontext eines Objekts mit einer PUT-Anfrage ersetzen. Mit der PUT-Objektanfrage werden auch andere Objektmetadaten ersetzt. Daher raten wir von der Verwendung der Objektanfrage PUT ab.
Objektkontexte ansehen
Sie können die Kontexte eines Objekts aufrufen, indem Sie die Objektmetadaten auflisten oder ein bestimmtes Objekt beschreiben.
Console
- Wechseln Sie in der Cloud de Confiance Console unter „Cloud Storage“ zur Seite Buckets.
Klicken Sie in der Liste der Buckets auf den Namen des Buckets, der das Objekt mit den Kontexten enthält, die Sie sich ansehen möchten.
Rufen Sie das Objekt auf und klicken Sie dann auf den Namen des Objekts.
Auf der Seite Objektdetails werden die Schlüssel/Wert-Paare für alle angehängten Kontexte im Abschnitt Objektkontexte aufgeführt.
Befehlszeile
Führen Sie den Befehl gcloud storage objects describe aus:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME
Wobei:
BUCKET_NAMEist der Name des Buckets, der das Objekt enthält. Beispiel:my-bucket.OBJECT_NAMEist der Name des Objekts. Beispiel:employees.txt.
Wenn der Vorgang erfolgreich war, sieht die Antwort in etwa so aus:
bucket: my-bucket
contexts:
custom:
Department:
createTime: '2023-01-01T00:00:00.000000+00:00'
type: CUSTOM
updateTime: '2023-01-01T00:00:00.000000+00:00'
value: Human resources
google:annotation:face-detector-v1:
createTime: '2025-09-29T17:20:00.000000+00:00'
extendedDataTypeUrl: type.googleapis.com/google.protobuf.Struct
type: CUSTOM
updateTime: '2025-09-29T17:20:00.000000+00:00'
value: SUCCESS
name: employees.txt
Clientbibliotheken
Java
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java 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.
Legen Sie vor dem Ausführen von Codebeispielen die Umgebungsvariable GOOGLE_CLOUD_UNIVERSE_DOMAIN auf s3nsapis.fr fest.
Rust
JSON API
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den
Authorization-Header zu generieren.Verwenden Sie
cURL, um die JSON API mit einerGET-Objektanfrage aufzurufen:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Wobei:
BUCKET_NAMEist der Name des Buckets, der das Objekt enthält. Beispiel:my-bucket.OBJECT_NAMEist der URL-codierte Name des Objekts. Beispiel:employees.txt.
Wenn der Vorgang erfolgreich war, sieht die Antwort in etwa so aus:
{ "kind": "storage#object", "name": "employees.txt", "bucket": "my-bucket", "contexts": { "custom": { "Department": { "value": "Human resources", "createTime": "2023-01-01T00:00:00.000Z", "updateTime": "2023-01-01T00:00:00.000Z" }, "google:annotation:face-detector-v1": { "value": "SUCCESS", "createTime": "2025-09-29T17:20:00.000Z", "updateTime": "2025-09-29T17:20:00.000Z", "extendedDataTypeUrl": "type.googleapis.com/google.protobuf.Struct" } } } }
Vollständigen Objektkontext ansehen
Wenn Sie einen einzelnen Kontext und die zugehörigen erweiterten Daten aufrufen möchten, verwenden Sie die Methode viewFullContext (Vorschau).
JSON API
So rufen Sie einen einzelnen vollständigen Kontext (einschließlich erweiterter Daten) nach Schlüssel ab:
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den
Authorization-Header zu generieren.Verwenden Sie
cURL, um die JSON API mit einerGET-Anfrage zum Aufrufen des vollständigen Kontexts aufzurufen:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/viewFullContext?contextKey=KEY"
Wobei:
BUCKET_NAMEist der Name des Buckets, der das Objekt enthält. Beispiel:my-bucket.OBJECT_NAMEist der URL-codierte Name des Objekts. Beispiel:employees.txt.KEYist der spezifische Kontextschlüssel, der abgerufen werden soll. Beispiel:google:annotation:face-detector-v1.
Wenn der Vorgang erfolgreich war, sieht die Antwort in etwa so aus:
{ "kind": "storage#objectFullContext", "type": "CUSTOM", "key": "google:annotation:face-detector-v1", "value": "SUCCESS", "createTime": "2025-09-29T17:20:00.000Z", "updateTime": "2025-09-29T17:20:00.000Z", "extendedData": { "@type": "type.googleapis.com/google.protobuf.Struct", "value": { "modelName": "face-detector", "modelVersion": "v1", "faceAnnotationGroup": { "faceAnnotations": [ { "detectionConfidence": 0.9, "landmarkingConfidence": 0.8 } ] } } } }
Objekte nach Kontext filtern
Filtern Sie Objekte nach dem Vorhandensein von Objektkontextschlüsseln oder ihren spezifischen Werten. Wenn Sie Objekte nach Kontexten filtern, können Sie bestimmte Gruppen von Objekten effizient finden und verwalten. Weitere Informationen finden Sie unter Objekte nach Kontexten filtern.
Objektkontexte während Objektvorgängen verwalten
Standardmäßig behält Cloud Storage Objektkontexte bei, wenn Sie Objekte kopieren, umschreiben, zusammensetzen, verschieben oder wiederherstellen.
Objekte kopieren
Standardmäßig werden in Cloud Storage Objektkontexte aus dem Quellobjekt bei einem Kopiervorgang beibehalten, auch wenn Sie andere Metadaten überschreiben. So ändern Sie Objektkontexte während eines Kopiervorgangs:
Befehlszeile
Mit den Befehlen gcloud storage cp, gcloud storage rsync und gcloud storage mv werden Kontexte aus dem Quellobjekt standardmäßig beibehalten. Wenn Sie Kontexte während dieser Vorgänge ändern möchten, verwenden Sie eines der folgenden Flags:
Das Flag
--custom-contextszum Festlegen neuer Kontexte für das Zielobjekt.Das Flag
--clear-custom-contexts, um zu verhindern, dass Kontexte aus dem Quellobjekt an das Zielobjekt angehängt werden.Eine Kombination aus den Flags
--update-custom-contextsund--remove-custom-contexts, um einzelne Kontexte des Quellobjekts zu ändern, bevor sie an das Zielobjekt angehängt werden.
Wenn Sie beim Kopieren eines Objekts neue Kontexte festlegen möchten, verwenden Sie den Befehl gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --custom-contexts=KEY=VALUE,...
Wobei:
SOURCE_BUCKET_NAMEist der Name des Buckets, der das zu kopierende Objekt enthält. Beispiel:my-source-bucket.SOURCE_OBJECT_NAMEist der Name des Objekts, das kopiert werden soll. Beispiel:employees.txt.DESTINATION_BUCKET_NAMEist der Name des Buckets, in den das Objekt kopiert werden soll. Beispiel:my-destination-bucket.DESTINATION_OBJECT_NAMEist der Name des Zielobjekts. Beispiel:employees-backup.txt.KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department. Sie können mehrere durch Kommas getrennte Schlüssel/Wert-Paare angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
Wenn Sie beim Kopieren eines Objekts alle Kontexte aus dem Quellobjekt entfernen möchten, verwenden Sie den Befehl gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
Wobei:
SOURCE_BUCKET_NAMEist der Name des Buckets, der das zu kopierende Objekt enthält. Beispiel:my-source-bucket.SOURCE_OBJECT_NAMEist der Name des zu kopierenden Objekts. Beispiel:pets/dog.png.DESTINATION_BUCKET_NAMEist der Name des Buckets, in den das Objekt kopiert werden soll. Beispiel:my-destination-bucket.DESTINATION_OBJECT_NAMEist der Name des Zielobjekts. Beispiel:pets/cat.png.
Wenn Sie beim Kopieren eines Objekts einzelne Kontexte aus dem Quellobjekt ändern möchten, verwenden Sie den Befehl gcloud storage cp mit --update-custom-contexts und --remove-custom-contexts:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --update-custom-contexts=KEY=VALUE,... --remove-custom-contexts=KEY,...
Wobei:
SOURCE_BUCKET_NAMEist der Name des Buckets, der das zu kopierende Objekt enthält. Beispiel:my-source-bucket.SOURCE_OBJECT_NAMEist der Name des zu kopierenden Objekts. Beispiel:pets/dog.png.DESTINATION_BUCKET_NAMEist der Name des Buckets, in den das Objekt kopiert werden soll. Beispiel:my-destination-bucket.DESTINATION_OBJECT_NAMEist der Name des Zielobjekts. Beispiel:pets/cat.png.KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department. Sie können mehrere Schlüssel/Wert-Paare oder Schlüssel durch Kommas getrennt angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
JSON API
Wenn Sie beim Kopieren eines Objekts Kontexte überschreiben möchten, fügen Sie das Attribut contexts.custom in den Anfragetext ein:
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den
Authorization-Header zu generieren.Erstellen Sie eine JSON-Datei, die die Kontexte enthält, die an das Zielobjekt angehängt werden sollen:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" } } } }
Wobei:
KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
Verwenden Sie
cURL, um die JSON API mit einerPOST-Objektanfrage aufzurufen:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
Wobei:
JSON_FILE_NAMEist der Pfad zur JSON-Datei, die die Informationen zu den Objektkontexten enthält.SOURCE_BUCKET_NAMEist der Name des Buckets, der das zu kopierende Objekt enthält. Beispiel:my-source-bucketSOURCE_OBJECT_NAMEist der URL-codierte Name des Objekts, das kopiert werden soll. Beispiel:employees.txt.DESTINATION_BUCKET_NAMEist der Name des Buckets, in den das Objekt kopiert werden soll. Beispiel:my-destination-bucketDESTINATION_OBJECT_NAMEist der URL-codierte Name des Zielobjekts. Beispiel:employees-backup.txt.
Wenn Sie Quellkontexte während eines Kopiervorgangs verwerfen möchten, verwenden Sie den Suchparameter dropContextGroups=custom in Ihrer Anfrage:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
Wenn der Anfragetext Kontexte mit dem Präfix google: enthält, können Sie vorhandene Schlüssel und Werte aus dem Quellobjekt beibehalten. Cloud Storage lehnt jedoch neue google:-Schlüssel oder geänderte Werte ab.
Wenn Sie den Kontext beibehalten möchten, lassen Sie das Attribut contexts im Anfragetext weg und schließen Sie den Abfrageparameter dropContextGroups aus.
Objekte umschreiben
Standardmäßig behält Cloud Storage bei einem Umschreibevorgang Objektkontexte aus dem Quellobjekt bei, auch wenn Sie andere Metadaten überschreiben. So ändern Sie Objektkontexte während eines Überschreibvorgangs:
Befehlszeile
Die Befehle gcloud storage cp, gcloud storage rsync und gcloud storage mv führen bei Bedarf automatisch Neuschreibungen durch, z. B. beim Kopieren von Objekten zwischen verschiedenen Standorten oder Speicherklassen. gcloud storage cp und gcloud storage rsync führen zu einem Quell- und einem Zielobjekt, während mit gcloud storage mv das Zielobjekt erstellt und das Quellobjekt entfernt wird. Da diese Vorgänge ein neues Objekt erstellen, können Sie Kontexte auch im Rahmen desselben Befehls ändern oder anhängen. Verwenden Sie dazu eines der folgenden Flags:
Das Flag
--custom-contexts, um neue Kontexte für das Zielobjekt festzulegen.Das Flag
--clear-custom-contexts, um zu verhindern, dass Kontexte aus dem Quellobjekt an das Zielobjekt angehängt werden.Eine Kombination aus den Flags
--update-custom-contextsund--remove-custom-contexts, um einzelne Kontexte aus dem Quellobjekt zu ändern, bevor sie an das Zielobjekt angehängt werden.
Wenn Sie beim Kopieren eines Objekts neue Kontexte festlegen möchten, verwenden Sie den Befehl gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --custom-contexts=KEY=VALUE,...
Wobei:
SOURCE_BUCKET_NAMEist der Name des Buckets, der das zu kopierende Objekt enthält. Beispiel:my-source-bucket.SOURCE_OBJECT_NAMEist der Name des Objekts, das kopiert werden soll. Beispiel:employees.txt.DESTINATION_BUCKET_NAMEist der Name des Buckets, in den das Objekt kopiert werden soll. Beispiel:my-destination-bucket.DESTINATION_OBJECT_NAMEist der Name des Zielobjekts. Beispiel:employees-backup.txt.KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department. Sie können mehrere durch Kommas getrennte Schlüssel/Wert-Paare angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
Wenn Sie beim Kopieren eines Objekts alle Kontexte aus dem Quellobjekt entfernen möchten, verwenden Sie den Befehl gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
Wobei:
SOURCE_BUCKET_NAMEist der Name des Buckets, der das zu kopierende Objekt enthält. Beispiel:my-source-bucket.SOURCE_OBJECT_NAMEist der Name des zu kopierenden Objekts. Beispiel:pets/dog.png.DESTINATION_BUCKET_NAMEist der Name des Buckets, in den das Objekt kopiert werden soll. Beispiel:my-destination-bucket.DESTINATION_OBJECT_NAMEist der Name des Zielobjekts. Beispiel:pets/cat.png.
Wenn Sie beim Kopieren eines Objekts einzelne Kontexte aus dem Quellobjekt ändern möchten, verwenden Sie den Befehl gcloud storage cp mit --update-custom-contexts und --remove-custom-contexts:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --update-custom-contexts=KEY=VALUE,... --remove-custom-contexts=KEY,...
Wobei:
SOURCE_BUCKET_NAMEist der Name des Buckets, der das zu kopierende Objekt enthält. Beispiel:my-source-bucket.SOURCE_OBJECT_NAMEist der Name des zu kopierenden Objekts. Beispiel:pets/dog.png.DESTINATION_BUCKET_NAMEist der Name des Buckets, in den das Objekt kopiert werden soll. Beispiel:my-destination-bucket.DESTINATION_OBJECT_NAMEist der Name des Zielobjekts. Beispiel:pets/cat.png.KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department. Sie können mehrere Schlüssel/Wert-Paare oder Schlüssel durch Kommas getrennt angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
JSON API
Wenn Sie Kontexte beim Umschreiben eines Objekts überschreiben möchten, fügen Sie das Attribut contexts.custom in den Anfragetext ein:
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den
Authorization-Header zu generieren.Erstellen Sie eine JSON-Datei, die die Kontexte enthält, die an das Zielobjekt angehängt werden sollen:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" } } } }
Wobei:
KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
Verwenden Sie
cURL, um die JSON API mit einerPOST-Objektanfrage aufzurufen:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
Wobei:
JSON_FILE_NAMEist der Pfad zur JSON-Datei, die die Informationen zu den Objektkontexten enthält.SOURCE_BUCKET_NAMEist der Name des Buckets, der das umzuschreibende Objekt enthält. Beispiel:my-source-bucket.SOURCE_OBJECT_NAMEist der URL-codierte Name des Objekts, das umgeschrieben werden soll. Beispiel:employees.txt.DESTINATION_BUCKET_NAMEist der Name des Buckets, in den das Objekt umgeschrieben werden soll. Beispiel:my-destination-bucket.DESTINATION_OBJECT_NAMEist der URL-codierte Name des Zielobjekts. Beispiel:employees-backup.txt.
Wenn Sie Quellkontexte während eines Umschreibevorgangs verwerfen möchten, verwenden Sie den Suchparameter dropContextGroups=custom in Ihrer Anfrage:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
Wenn der Anfragetext Kontexte mit dem Präfix google: enthält, können Sie vorhandene Schlüssel und Werte aus dem Quellobjekt beibehalten. Cloud Storage lehnt jedoch neue google:-Schlüssel oder geänderte Werte ab.
Wenn Sie Kontexte beibehalten möchten, lassen Sie das Attribut contexts im Anfragetext weg und schließen Sie den Abfrageparameter dropContextGroups aus.
Objekte zusammensetzen
Der Befehl gcloud storage objects compose und die JSON API-Methode „compose“ führen standardmäßig Kontexte aus den Quellobjekten zusammen und hängen sie an die Zielobjekte an. Cloud Storage löst Konflikte, indem Kontexte aus später verarbeiteten Quellobjekten priorisiert werden. Weitere Informationen zum Verhalten des Objektkontexts während eines Compose-Vorgangs finden Sie unter Kontexte für zusammengesetzte Objekte.
Befehlszeile
Wenn Sie beim Zusammensetzen von Objekten neue Kontexte für das Zielobjekt angeben möchten, verwenden Sie das Flag --contexts:
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/DESTINATION_OBJECT_NAME --contexts=KEY=VALUE,...
Wobei:
BUCKET_NAMEist der Name des Buckets, der die Quellobjekte enthält und in dem das Zielobjekt erstellt wird. Beispiel:my-bucket.SOURCE_OBJECT_1undSOURCE_OBJECT_2sind Quellobjekte, die zusammengesetzt werden sollen.DESTINATION_OBJECT_NAMEist der Name des zu erstellenden Zielobjekts. Beispiel:my-composite-object.KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department. Sie können mehrere durch Kommas getrennte Schlüssel/Wert-Paare angeben.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources.
Wenn Sie verhindern möchten, dass Quellkontexte an zusammengesetzte Objekte angehängt werden, verwenden Sie das Flag --clear-custom-contexts:
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
Wobei:
BUCKET_NAMEist der Name des Buckets, der die Quellobjekte enthält und in dem das Zielobjekt erstellt wird. Beispiel:my-bucket.SOURCE_OBJECT_1undSOURCE_OBJECT_2sind die Quellobjekte, die zusammengesetzt werden sollen.DESTINATION_OBJECT_NAMEist der Name des zu erstellenden Zielobjekts. Beispiel:my-composite-object.
JSON API
Wenn Sie beim Erstellen von Objekten neue Kontexte für das Zielobjekt angeben möchten, fügen Sie Kontexte in das Attribut destination des Anfragetexts ein.
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den
Authorization-Header zu generieren.Erstellen Sie eine JSON-Datei, die den Anfragetext enthält:
{ "sourceObjects": [ {"name": "SOURCE_OBJECT_1"}, {"name": "SOURCE_OBJECT_2"} ], "destination": { "contentType": "text/plain", "contexts": { "custom": { "KEY": { "value": "VALUE" } } } } }
Wobei:
SOURCE_OBJECT_1undSOURCE_OBJECT_2sind Quellobjekte, die zusammengesetzt werden sollen.KEYist der Kontextschlüssel, der an ein Objekt angehängt werden soll. Beispiel:Department.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll. Beispiel:Human resources
Verwenden Sie
cURL, um die JSON API mit einerPOST-Objektanfrage aufzurufen:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/DESTINATION_OBJECT_NAME/compose"
Wobei:
JSON_FILE_NAMEist der Pfad zur JSON-Datei, die den Anfragetext enthält.BUCKET_NAMEist der Name des Buckets, der die Quellobjekte enthält und in dem das Zielobjekt erstellt wird. Beispiel:my-bucket.DESTINATION_OBJECT_NAMEist der Name des zu erstellenden Zielobjekts. Beispiel:my-composite-object.
Wenn Sie verhindern möchten, dass Quellkontexte an zusammengesetzte Objekte angehängt werden, verwenden Sie in Ihrer Anfrage den Suchparameter dropContextGroups=custom:
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den
Authorization-Header zu generieren.Erstellen Sie eine JSON-Datei, die den Anfragetext enthält:
{ "sourceObjects": [ {"name": "SOURCE_OBJECT_1"}, {"name": "SOURCE_OBJECT_2"} ], "destination": { "contentType": "text/plain" } }
Wobei:
SOURCE_OBJECT_1undSOURCE_OBJECT_2sind Quellobjekte, die zusammengesetzt werden sollen.
Verwenden Sie
cURL, um die JSON API mit einerPOST-Objektanfrage aufzurufen:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/DESTINATION_OBJECT_NAME/compose?dropContextGroups=custom"
Wobei:
JSON_FILE_NAMEist der Pfad zur JSON-Datei, die den Anfragetext enthält.BUCKET_NAMEist der Name des Buckets, der die Quellobjekte enthält und in dem das Zielobjekt erstellt wird. Beispiel:my-bucket.DESTINATION_OBJECT_NAMEist der Name des zu erstellenden Zielobjekts. Beispiel:my-composite-object.
Objektkontexte im Bulk verwalten
Wenn Sie Objektkontexte für Millionen oder Milliarden von Objekten mit einem einzigen Job verwalten möchten, verwenden Sie Storage-Batchvorgänge. Wenn Sie einen Job erstellen möchten, geben Sie die Zielobjekte an, indem Sie eine Manifestdatei bereitstellen oder Objektpräfixe verwenden. Nachdem Sie die Objekte angegeben haben, erstellen Sie einen Batchvorgangsjob, um Objektkontexte zu aktualisieren.
Objektkontexte in BigQuery analysieren
Wenn Sie ein aktives Storage Intelligence-Abo haben, können Sie Objektkontexte in BigQuery abfragen und analysieren. Verwenden Sie die Katalogansicht für Objektkontexte (object_contexts_catalog_view), um Kontextschlüssel, Werte und strukturierte extendedData-Nutzlasten (z. B. Bildlabels, erkannte Gesichter und Begrenzungsrahmen) abzufragen. Die Katalogansicht wird alle 24 Stunden aktualisiert.
So finden Sie beispielsweise alle Objekte, bei denen ein bestimmter Annotationswert einen Schwellenwert überschreitet:
SELECT t.project, t.bucket, t.name, t.generation, label FROM `PROJECT_ID.INSIGHTS_DATASET.object_contexts_catalog_view` AS t, UNNEST(t.contexts) AS context, UNNEST(JSON_QUERY_ARRAY(context.extendedData.labelAnnotationGroup.labelAnnotations)) AS label WHERE context.key = "google:annotation:label-detector-v1" AND FLOAT64(label.score) > 0.75;
Ersetzen Sie:
PROJECT_ID: die ID des Projekts, das das Storage Insights-Dataset enthält.INSIGHTS_DATASET: der Name des Storage Insights-Datasets.
Weitere Informationen zum Schema der Katalogansicht finden Sie unter Katalogschema für Objektkontexte. Weitere Beispielabfragen finden Sie unter Objektkontexte analysieren.
Nächste Schritte
- Informationen zu den Objektkontextattributen finden Sie in der Cloud Storage API-Dokumentation.