Zusammengesetzte Objekte

Erstellen

Auf dieser Seite werden zusammengesetzte Objekte beschrieben, die Sie aus vorhandenen Objekten erstellen, ohne zusätzliche Objektdaten zu übertragen. Zusammengesetzte Objekte sind nützlich, um Anhänge an ein vorhandenes Objekt anzuhängen sowie für das Neuerstellen von Objekten, die Sie parallel in Form mehrerer Komponenten hochgeladen haben.

Objekte zusammensetzen

Beim Zusammensetzen werden die Daten in einer bestimmten Abfolge von Quellobjekten verkettet. Dies dient zum Erstellen eines neuen Objekts, das als zusammengesetztes Objekt bezeichnet wird. Die Quellobjekte müssen alle folgende Kriterien erfüllen:

  • Sie haben dieselbe Speicherklasse.
  • Sie werden im selben Cloud Storage-Bucket gespeichert.

Beim Ausführen einer Zusammensetzung:

  • Die Quellobjekte sind nicht betroffen.
  • Sie können zwischen 1 und 32 Quellobjekte verwenden.
  • Quellobjekte können selbst zusammengesetzte Objekte sein.

Für das zusammengesetzte Objekt, das sich aus einer Zusammensetzung ergibt, gilt:

  • Es hat dieselbe Speicherklasse wie die Quellobjekte.
  • Es ändert sich nicht, wenn die Quellobjekte später ersetzt oder gelöscht werden.

Wenn Sie gcloud storage für die Objektzusammensetzung verwenden, hat das resultierende Objekt einen Content-Type, der auf den Content-Type des ersten Quellobjekts eingestellt ist.

Zusammengesetzte Objektmetadaten

Es gibt mehrere Unterschiede zwischen den Metadaten eines zusammengesetzten Objekts und den Metadaten anderer Objekte:

  • Zusammengesetzte Objekte haben kein MD5-Hash-Metadatenfeld.

  • Der ETag-Wert eines zusammengesetzten Objekts basiert nicht auf einem MD5-Hash und im Clientcode sollte nicht von bestimmten ETags zusammengesetzter Objekte ausgegangen werden, sondern davon, dass diese sich ändern, wenn sich das zugrunde liegende Objekt gemäß der IETF-Spezifikation für HTTP/1.1 ändert.

  • Jedes zusammengesetzte Objekt hat ein Metadatenfeld Komponentenanzahl, das die Anzahl der nicht zusammengesetzten Objekte im zusammengesetzten Objekt zählt.

    • Wenn Sie ein zusammengesetztes Objekt an einen anderen Speicherort und/oder in einer anderen Speicherklasse schreiben, erhalten Sie ein zusammengesetztes Objekt mit einer Komponentenzahl von 1.

Integritätsprüfung zusammengesetzter Objekte

Cloud Storage verwendet CRC32C, um die Integrität jedes Quellobjekts zum Zeitpunkt seines Uploads zu prüfen und um beim Aufruf eine Integritätsprüfung des erstellten zusammengesetzten Objekts vornehmen zu können, wenn dieses heruntergeladen wird. CRC32C ist ein Fehlererkennungscode, der aus den CRC32C-Werten seiner Komponenten zuverlässig ermittelt werden kann. Ihre Anwendung sollte CRC32C so verwenden:

  • Berechnen Sie beim Hochladen von Quellobjekten den CRC32C für jedes Objekt. Verwenden Sie hierzu eine CRC32C-Bibliothek, etwa eine Bibliothek auf der Seite Hashes und ETags. Fügen Sie diesen Wert in Ihre Anfrage ein. Cloud Storage prüft jeden Upload anhand der von Ihnen bereitgestellten Werte.
  • Beim Zusammensetzungsvorgang wird automatisch geprüft, ob die Quellobjekte korrekt zusammengestellt wurden. Der CRC32C-Wert, den Sie im Rahmen der Zusammensetzungsanfrage angeben, wird ignoriert. In der Antwort wird ein CRC32C-Wert des resultierenden zusammengesetzten Objekts zurückgegeben.
  • Wenn Ihre Anwendung zwischen dem Hochladen und dem Zusammensetzen dieser Objekte Quellobjekte ändern kann, geben Sie den Quellobjekten Generierungsnamen, um Race-Bedingungen zu vermeiden. Alternativ können Sie einen CRC32C-Wert aus den CRC32C-Werten der beabsichtigten Quellobjekte erstellen und mit dem CRC32C-Wert vergleichen, der vom Zusammensetzungsvorgang zurückgegeben wird.
  • Berechnen Sie zum Zeitpunkt des Downloads den CRC32C-Wert des heruntergeladenen Objekts und vergleichen Sie ihn mit dem in der Antwort enthaltenen Wert.

Begrenztes Anhängen und Bearbeiten

Sie können den Vorgang der Zusammensetzung in begrenztem Umfang auch zum Anhängen und Bearbeiten nutzen.

Zum Anfügen laden Sie Daten in ein temporäres neues Objekt hoch und setzen das anzuhängende Objekt mit diesem temporären Objekt zusammen. Sie können für die Ausgabe der Zusammensetzung optional denselben Namen festlegen. Danach löschen Sie dann das temporäre Objekt.

In der gcloud CLI sieht die Befehlsfolge zum Anfügen des Strings new data an ein vorhandenes Cloud Storage-Objekt beispielsweise so aus:

$ echo 'new data' | gcloud storage cp - gs://bucket/temporary_object
$ gcloud storage objects compose gs://bucket/object_to_append gs://bucket/temporary_object \
    gs://bucket/object_to_append
$ gcloud storage rm gs://bucket/temporary_object

Sie können die Objektzusammensetzung auch nutzen, um grundlegende Vorgänge der Objektbearbeitung zu unterstützen. Zum Beispiel können Sie ein Objekt X aus der Sequenz {Y1, Y2, Y3} zusammensetzen, den Inhalt von Y2 ersetzen und X aus denselben Komponenten neu zusammensetzen. Hierbei dürfen Y1, Y2 und Y3 nicht gelöscht werden. Das bedeutet, dass Ihnen außer dem zusammengesetzten Objekt auch die einzelnen Komponenten berechnet werden.

Nächste Schritte