Auf dieser Seite wird beschrieben, wie Sie Kontexte in Form von Schlüssel/Wert-Paaren 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:
Storage Object User (
roles/storage.objectUser) -
Kontextschlüssel und ‑werte, die an Objekte angehängt sind, ansehen:
Storage Object Viewer (
roles/storage.objectViewer) -
Kontexte für das Ablegen von Objekten während des Umschreibens, Kopierens und Verfassens von Vorgängen entfernen:
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
-
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
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.
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 beim Hochladen von Verzeichnissen mit dem Befehl gcloud storage rsync Kontexte anhängen möchten, verwenden Sie das Flag --custom-contexts oder das Flag --custom-contexts-file:
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 beim Hochladen neuer Objekte Kontexte an Objekte anhängen möchten, verwenden Sie eine der folgenden Methoden:
Nehmen Sie das Feld contexts in die Objektmetadaten im JSON-Format auf:
{ "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.
Kontexte an ein vorhandenes Objekt anhängen oder ändern
Sie können Ihren vorhandenen Objekten in den Cloud Storage-Buckets neue Kontexte hinzufügen.
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 Schlüssel/Wert-Paare angeben, die durch Kommas getrennt sind.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.Verwenden Sie eine Kombination aus
--update-custom-contexts=KEY=VALUE,...und--remove-custom-contexts=KEY,..., um einzelne Kontexte hinzuzufügen, zu ändern oder zu löschen.Wobei:
KEYist der Kontextschlüssel, den Sie einem Objekt zuweisen oder aus einem Objekt löschen möchten. Beispiel:Department.VALUEist der Wert, der dem Kontextschlüssel zugeordnet werden soll, den Sie an ein Objekt anhängen oder aus einem Objekt 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.
JSON API
Installieren und initialisieren Sie die gcloud CLI, 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.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Wobei:
JSON_FILE_NAMEist der Pfad zur Datei, die die Informationen zum Objektkontext 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 PUT-Objektanfrage ab.
Objektkontexte ansehen
Sie können die Kontexte eines Objekts aufrufen, indem Sie die Objektmetadaten auflisten oder ein bestimmtes Objekt beschreiben.
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, dessen Kontext Sie ansehen möchten. Beispiel:my-bucket.OBJECT_NAMEist der Name des Objekts, dessen Kontext Sie ansehen möchten. Beispiel:employees.txt.
Wenn der Vorgang erfolgreich war, sieht die Antwort in etwa so aus:
bucket: my-bucket
contexts:
Department:
createTime: '2023-01-01T00:00:00.000000+00:00'
type: CUSTOM
updateTime: '2023-01-01T00:00:00.000000+00:00'
value: Human resources
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.
JSON API
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den Header
Authorizationzu 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.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Wobei:
BUCKET_NAMEist der Name des Buckets, der das Objekt enthält, dessen Kontext Sie ansehen möchten. Beispiel:my-bucket.OBJECT_NAMEist der URL-codierte Name des Objekts, dessen Kontext Sie ansehen möchten. 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" } } } }
Objekte nach Kontexten filtern
Objekte nach dem Vorhandensein von Objektkontextschlüsseln oder ihren spezifischen Werten filtern. 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 bei Objektvorgängen verwalten
Standardmäßig werden Objektkontexte in Cloud Storage beibehalten, wenn Sie Objekte kopieren, umschreiben, zusammenstellen, verschieben oder wiederherstellen.
Objekte kopieren
Standardmäßig werden in Cloud Storage Objektkontexte aus dem Quellobjekt während eines Kopiervorgangs beibehalten, auch wenn Sie andere Metadaten überschreiben. So ändern Sie Objektkontexte während eines Kopiervorgangs:
Befehlszeile
Mit dem Befehl gcloud storage cp, dem Befehl gcloud storage rsync und dem Befehl gcloud storage mv werden standardmäßig Kontexte aus dem Quellobjekt beibehalten. Verwenden Sie eines der folgenden Flags, um Kontexte während dieser Vorgänge zu ändern:
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 der Flags
--update-custom-contextsund--remove-custom-contexts, um einzelne Kontexte des Quellobjekts zu ändern, bevor sie an das Zielobjekt angehängt werden.
Verwenden Sie den Befehl gcloud storage cp, um beim Kopieren eines Objekts neue Kontexte festzulegen:
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 Objekts, das kopiert werden soll. 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 Objekts, das kopiert werden soll. 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 angeben, die durch Kommas getrennt sind.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:
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.googleapis.com/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 zum Objektkontext 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 alle Quellkontexte entfernen möchten, ohne eine Überschreibung anzugeben, verwenden Sie den Abfrageparameter dropContextGroups=custom in Ihrer Anfrage:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
Um Kontexte beizubehalten, lassen Sie die Eigenschaft contexts.custom im Anfragetext weg und schließen Sie dropContextGroups=custom in den Abfrageparametern aus:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
Informationen zum Verhalten von Kontexten bei Kopiervorgängen finden Sie unter dem Abfrageparameter dropContextGroups.
Objekte umschreiben
Standardmäßig behält Cloud Storage bei einem Überschreibvorgang Objektkontexte aus dem Quellobjekt bei, auch wenn Sie andere Metadaten überschreiben. So ändern Sie Objektkontexte während eines Rewrite-Vorgangs:
Befehlszeile
Mit den Befehlen gcloud storage cp, gcloud storage rsync und gcloud storage mv werden bei Bedarf automatisch Änderungen vorgenommen, z. B. beim Kopieren von Objekten zwischen verschiedenen Speicherorten 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 bei diesen Vorgängen ein neues Objekt erstellt wird, können Sie auch Kontexte im selben Befehl ändern oder anhängen. Verwenden Sie dazu 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 der Flags
--update-custom-contextsund--remove-custom-contexts, um einzelne Kontexte des Quellobjekts zu ändern, bevor sie an das Zielobjekt angehängt werden.
Verwenden Sie den Befehl gcloud storage cp, um beim Kopieren eines Objekts neue Kontexte festzulegen:
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 Objekts, das kopiert werden soll. 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 Objekts, das kopiert werden soll. 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 angeben, die durch Kommas getrennt sind.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.googleapis.com/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 zum Objektkontext enthält.SOURCE_BUCKET_NAMEist der Name des Buckets, der das Objekt enthält, das umgeschrieben werden soll. 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 alle Quellkontexte entfernen möchten, ohne eine Überschreibung anzugeben, verwenden Sie den Abfrageparameter dropContextGroups=custom in Ihrer Anfrage:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
Um Kontexte beizubehalten, lassen Sie das Attribut contexts.custom im Anfragetext weg und schließen Sie dropContextGroups=custom in den Abfrageparametern aus:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
Informationen zum Verhalten von Kontexten bei Umschreibevorgängen finden Sie unter dem dropContextGroups-Abfrageparameter.
Objekte zusammensetzen
Mit dem Befehl gcloud storage objects compose und der compose-Methode der JSON API werden standardmäßig die Kontexte der Quellobjekte zusammengeführt und an die Zielobjekte angehängt. Cloud Storage löst Konflikte, indem Kontexten aus Quellobjekten, die später verarbeitet werden, Priorität eingeräumt wird. Weitere Informationen zum Verhalten des Objektkontexts während eines Kompositionsvorgangs finden Sie unter Kontexte für zusammengesetzte Objekte.
Befehlszeile
Wenn Sie beim Erstellen 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.googleapis.com/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 den Abfrageparameter dropContextGroups=custom in Ihrer Anfrage:
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" } }
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.googleapis.com/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.
Nächste Schritte
- Informationen zu den Eigenschaften des Objektkontexts finden Sie in der Cloud Storage API-Dokumentation.