Auf dieser Seite erfahren Sie, wie Sie mehrere Cloud Storage-Objekte in einem einzelnen Objekt zusammenfassen. Eine Compose-Anfrage umfasst zwischen 1 und 32 Objekte und erstellt ein neues zusammengesetztes Objekt. Das zusammengesetzte Objekt ist eine Verkettung der Quellobjekte in der Reihenfolge, in der sie in der Anfrage angegeben wurden.
Die Quellobjekte sind nicht betroffen, es sei denn, Sie löschen sie während des Zusammensetzungsprozesses.
Kosten für temporäre Objekte
Wenn die Quellobjekte temporär sein sollen, beachten Sie beim Zusammensetzen von Objekten die folgenden Kostenaspekte:
Für Quellobjekte gelten je nach Speicherklasse Mindestspeicherdauern. Möglicherweise fallen Gebühren für vorzeitiges Löschen an.
Wenn vorläufiges Löschen oder 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. Dies kann zusätzliche Speicherkosten verursachen.
Um die Abrechnung für temporäre Objekte zu minimieren, sollten Sie die temporären Objekte während des Zusammensetzungsvorgangs mit der Option
deleteSourceObjectsendgültig löschen. Für Objekte, die mit dieser Option gelöscht werden, fallen keine Gebühren für die vorzeitige Löschung an. Außerdem werden Objekte, die mit dieser Option gelöscht werden, nicht durch vorläufiges Löschen oder die Objektversionsverwaltung beibehalten, da die Daten im zusammengesetzten Objekt beibehalten 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 in Ihrem Google Cloud CLI-Befehl auflisten zu müssen.
Wenn Sie eine Aufbewahrungskonfiguration für das Objekt festlegen möchten, das Sie erstellen, benötigen Sie auch die Berechtigung storage.objects.setRetention. Bitten Sie den 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 Kompositionsprozesses 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 API-Referenzdokumentation zu Cloud Storage C#.
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 API-Referenzdokumentation zu Cloud Storage Go.
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 API-Referenzdokumentation zu Cloud Storage Java.
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 API-Referenzdokumentation zu Cloud Storage Node.js.
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 API-Referenzdokumentation zu Cloud Storage PHP.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Python
Weitere Informationen finden Sie in der API-Referenzdokumentation zu Cloud Storage Python.
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 API-Referenzdokumentation zu Cloud Storage Ruby.
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
Authorization-Header 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 Kompositionsprozesses löschen möchten, oder auffalse, wenn Sie die Quellobjekte beibehalten möchten. Der Standardwert istfalse.
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/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
Authorization-Header zu generieren.Erstellen Sie eine XML-Datei mit den folgenden Informationen:
<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 einerPUT-Objektanfrage aufzurufen, die den Abfragestringparametercomposeenthä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"
Wobei:
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