Auf dieser Seite erfahren Sie, wie Sie mehrere Cloud Storage-Objekte in einem einzelnen Objekt zusammenfassen. Bei einer Zusammensetzungsanfrage werden zwischen 1 und 32 Objekte verwendet, um ein neues zusammengesetztes Objekt zu erstellen. Das zusammengesetzte Objekt ist eine Verkettung der Quellobjekte in der Reihenfolge, in der sie in der Anfrage angegeben wurden.
Die Quellobjekte sind davon nicht betroffen, es sei denn, Sie löschen sie während des Zusammensetzungsprozesses.
Kostenüberlegungen für temporäre Objekte
Wenn die Quellobjekte temporär sein sollen, beachten Sie beim Zusammensetzen von Objekten die folgenden Kostenüberlegungen:
Für Quellobjekte gelten je nach Speicherklasse Mindestspeicherdauern und es können Gebühren für vorzeitiges Löschen anfallen.
Wenn vorläufiges Löschen oder die Objektversionsverwaltung aktiviert ist, kann das Löschen der Quellobjekte nach Abschluss der Zusammensetzung dazu führen, dass die Quellobjekte vorläufig gelöscht oder nicht aktuell werden, was zusätzliche Speichergebühren verursachen kann.
Um die Abrechnung für temporäre Objekte zu minimieren, löschen Sie die temporären Objekte während des Zusammensetzungsprozesses dauerhaft mit der Option
deleteSourceObjects. Für Objekte, die mit dieser Option gelöscht werden, fallen keine Gebühren für vorzeitiges Löschen an. Außerdem werden Objekte, die mit dieser Option gelöscht werden, nicht durch vorläufiges Löschen oder die Objektversionsverwaltung aufbewahrt, da die Daten im zusammengesetzten Objekt aufbewahrt werden.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Storage-Objekt-Nutzer“ (roles/storage.objectUser) für den Bucket zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Zusammensetzen von Objekten benötigen. Diese vordefinierte Rolle enthält die
Berechtigungen, die zum Zusammensetzen von Objekten erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
storage.objects.createstorage.objects.delete- Diese Berechtigung ist nur erforderlich, wenn Sie dem erstellten Objekt den gleichen Namen wie einem Objekt geben möchten, das bereits im Bucket vorhanden ist.
storage.objects.getstorage.objects.list- Diese Berechtigung ist nur erforderlich, wenn Sie Platzhalter verwenden möchten, um Objekte mit einem gemeinsamen Präfix zusammenzusetzen, ohne jedes Objekt einzeln im Google Cloud CLI Befehl auflisten zu müssen.
Wenn Sie eine Aufbewahrungskonfiguration für das Objekt
festlegen möchten, das Sie zusammensetzen, benötigen Sie auch die storage.objects.setRetention Berechtigung. Bitten Sie Ihren Administrator, Ihnen die Rolle „Storage-Objekt-Administrator“ (roles/storage.objectAdmin) anstelle der Rolle „Storage-Objekt-Nutzer“ (roles/storage.objectUser) zuzuweisen, um diese Berechtigung zu erhalten.
Sie können diese Berechtigungen auch mit anderen vordefinierten Rollen oder benutzerdefinierten Rollen erhalten.
Informationen zum Zuweisen von Rollen für Buckets finden Sie unter IAM-Richtlinien für Buckets festlegen und verwalten.
Zusammengesetztes Objekt erstellen
Befehlszeile
Führen Sie den Befehl gcloud storage objects compose aus:
gcloud storage objects compose \
gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 \
gs://BUCKET_NAME/COMPOSITE_OBJECT_NAMEDabei gilt:
BUCKET_NAMEist der Name des Buckets, der die Quellobjekte enthält.SOURCE_OBJECT_1undSOURCE_OBJECT_2sind die Namen der Quellobjekte, die bei der Objektzusammensetzung verwendet werden sollen.COMPOSITE_OBJECT_NAMEist der Name, den Sie dem Ergebnis der Objektzusammensetzung geben.
Wenn Sie die Quellobjekte im Rahmen des Zusammensetzungsprozesses löschen möchten, fügen Sie dem vorherigen Befehl das Flag --delete-source-objects hinzu.
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.
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.
Go
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go 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.
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.
Node.js
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js 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.
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.
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python 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.
Ruby
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby 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.
Rust
REST APIs
JSON-API
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den
AuthorizationHeader zu generieren.Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" }, "deleteSourceObjects": DELETE_SOURCE_OBJECTS_BOOLEAN }
Dabei gilt:
SOURCE_OBJECT_1undSOURCE_OBJECT_2sind die Namen der Quellobjekte, die in der Objektzusammensetzung verwendet werden sollen.COMPOSITE_OBJECT_CONTENT_TYPEist der Inhaltstyp des resultierenden zusammengesetzten Objekts.DELETE_SOURCE_OBJECTS_BOOLEANwird auftruegesetzt, wenn Sie die Quellobjekte im Rahmen des Zusammensetzungsprozesses löschen möchten, oder auffalse, wenn Sie die Quellobjekte beibehalten möchten. Der Standardwert istfalse.
Verwenden Sie
cURL, um die JSON API mit einerPOSTObjekt anfrage 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/COMPOSITE_OBJECT_NAME/compose"
Dabei gilt:
JSON_FILE_NAMEist der Name der Datei, die Sie im vorherigen Schritt erstellt haben.BUCKET_NAMEist der Name des Buckets, der die Quellobjekte enthält.COMPOSITE_OBJECT_NAMEist der Name, den Sie dem Ergebnis der Objektzusammensetzung geben.
Wenn der Vorgang erfolgreich abgeschlossen wurde, ist die Antwort eine Objektressource für das resultierende zusammengesetzte Objekt.
XML API
Installieren und initialisieren Sie die gcloud CLI, um ein Zugriffstoken für den
AuthorizationHeader zu generieren.Erstellen Sie eine XML-Datei, die folgende Information enthält:
<ComposeRequest> <Component> <Name>SOURCE_OBJECT_1</Name> </Component> <Component> <Name>SOURCE_OBJECT_2</Name> </Component> </ComposeRequest>
Dabei gilt:
SOURCE_OBJECT_1undSOURCE_OBJECT_2sind die Namen der Quellobjekte, die in der Objektzusammensetzung verwendet werden sollen.
Verwenden Sie
cURL, um die XML API mit einerPUTObjekt-Anfrage aufzurufen, die dencomposeAbfragestring parameter enthält:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: COMPOSITE_OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/BUCKET_NAME/COMPOSITE_OBJECT_NAME?compose"
Dabei gilt:
XML_FILE_NAMEist der Name der Datei, die Sie im vorherigen Schritt erstellt haben.COMPOSITE_OBJECT_CONTENT_TYPEist der Inhaltstyp des resultierenden zusammengesetzten Objekts.BUCKET_NAMEist der Name des Buckets, der die Quellobjekte enthält.COMPOSITE_OBJECT_NAMEist der Name, den Sie dem Ergebnis der Objektzusammensetzung geben.
Wenn der Vorgang erfolgreich abgeschlossen wurde, wird ein leerer Antworttext zurückgegeben.
Nächste Schritte
- Mehr zu zusammengesetzten Objekten
- Anfragevorbedingungen verwenden, um Race-Bedingungen zu verhindern