Auf dieser Seite wird beschrieben, wie Sie die Objektversionsverwaltung einrichten. Anhand von Beispielen wird ihr Einsatz gezeigt. Eine Beschreibung dieser Funktion finden Sie im Kapitel Objektversionsverwaltung.
Objektversionsverwaltung einrichten
In den folgenden Abschnitten wird gezeigt, wie Sie die Objektversionsverwaltung mit dem gsutil-Tool, der JSON API und der XML API aktivieren bzw. deaktivieren. Über die Google Cloud Platform Console kann die Funktion derzeit nicht ausgeführt werden.
Objektversionsverwaltung aktivieren
So aktivieren Sie die Objektversionsverwaltung für einen Bucket:
gsutil
Verwenden Sie den Befehl gsutil versioning set on
. Ersetzen Sie dabei [VALUES_IN_BRACKETS]
durch die entsprechenden Werte:
gsutil versioning set on gs://[BUCKET_NAME]
REST APIs
JSON API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Erstellen Sie eine
.json
-Datei, die die folgenden Informationen enthält:{ "versioning": { "enabled": true } }
Verwenden Sie
cURL
, um die JSON API mit einerPATCH
-Bucket-Anfrage aufzurufen. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:curl -X PATCH --data-binary @[JSON_FILE_NAME].json \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ -H "Content-Type: application/json" \ "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"
XML API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Erstellen Sie eine
.xml
-Datei, die die folgenden Informationen enthält. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:<VersioningConfiguration> <Status>Enabled</Status> </VersioningConfiguration>
Verwenden Sie
cURL
, um die XML API mit einerPUT
-Bucket-Anfrage und dem Abfragestringparameterversioning
aufzurufen. Ersetzen Sie[VALUES_IN_BRACKETS]
dabei durch die entsprechenden Werte:curl -X PUT --data-binary @[XML_FILE_NAME].xml \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://storage.googleapis.com/[BUCKET_NAME]?versioning"
Nach der Aktivierung der Objektversionsverwaltung erstellt Cloud Storage bei jedem Überschreiben oder Löschen der Liveversion des Objekts eine archivierte Objektversion.
Objektversionsverwaltung deaktivieren
So deaktivieren Sie die Objektversionsverwaltung für einen Bucket:
gsutil
Verwenden Sie den Befehl gsutil versioning set off
. Ersetzen Sie dabei [VALUES_IN_BRACKETS]
durch die entsprechenden Werte:
gsutil versioning set off gs://[BUCKET_NAME]
REST APIs
JSON API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Erstellen Sie eine
.json
-Datei, die die folgenden Informationen enthält:{ "versioning": { "enabled": false } }
Verwenden Sie
cURL
, um die JSON API mit einerPATCH
-Bucket-Anfrage aufzurufen. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:curl -X PATCH --data-binary @[JSON_FILE_NAME].json \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ -H "Content-Type: application/json" \ "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"
XML API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Erstellen Sie eine
.xml
-Datei, die die folgenden Informationen enthält. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:<VersioningConfiguration> <Status>Suspended</Status> </VersioningConfiguration>
Verwenden Sie
cURL
, um die XML API mit einerPUT
-Bucket-Anfrage und dem Abfragestringparameterversioning
aufzurufen. Ersetzen Sie[VALUES_IN_BRACKETS]
dabei durch die entsprechenden Werte:curl -X PUT --data-binary @[XML_FILE_NAME].xml \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://storage.googleapis.com/[BUCKET_NAME]?versioning"
Prüfen, ob die Objektversionsverwaltung aktiviert ist
So prüfen Sie, ob die Objektversionsverwaltung für einen Bucket aktiviert ist:
gsutil
Verwenden Sie den Befehl gsutil versioning get
. Ersetzen Sie dabei [VALUES_IN_BRACKETS]
durch die entsprechenden Werte:
gsutil versioning get gs://[BUCKET_NAME]
Die Antwort sieht in etwa so aus, wenn die Objektversionsverwaltung aktiviert ist:
gs://[BUCKET_NAME]: Enabled
REST APIs
JSON API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Verwenden Sie
cURL
, um die JSON API mit einerGET
-Bucket-Anfrage aufzurufen. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:curl -X GET \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"
XML API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Verwenden Sie
cURL
, um die XML API mit einerGET
-Bucket-Anfrage und dem Abfragestringparameterversioning
aufzurufen. Ersetzen Sie[VALUES_IN_BRACKETS]
dabei durch die entsprechenden Werte:curl -X GET \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://storage.googleapis.com/[BUCKET_NAME]?versioning"
Mit versionierten Objekten arbeiten
In den folgenden Abschnitten wird erklärt, wie Sie mit versionierten Objekten arbeiten. Für ein tief greifendes Beispiel zum Arbeiten mit Objektversionsverwaltungen siehe Objektversionsverwaltungsbeispiel.
Archivierte Objektversionen auflisten
So listen Sie Live- und archivierte Versionen eines Objekts mit den zugehörigen generation
-Nummern auf:
gsutil
Verwenden Sie den Befehl gsutil ls -a
. Ersetzen Sie dabei [VALUES_IN_BRACKETS]
durch die entsprechenden Werte:
gsutil ls -a gs://[BUCKET_NAME]
Die Antwort sieht in etwa so aus:
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER1] gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER2] gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER3] ...
REST APIs
JSON API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Verwenden Sie
cURL
, um die JSON API mit einerLIST
-Objektanfrage aufzurufen. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:curl -X GET \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o?versions=true"
Archivierte Versionen von Objekten weisen das Attribut timeDeleted
auf.
XML API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Verwenden Sie
cURL
, um die XML API mit einerGET
-Bucket-Anfrage und dem Abfragestringparameterversions
aufzurufen. Ersetzen Sie[VALUES_IN_BRACKETS]
dabei durch die entsprechenden Werte:curl -X GET \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://storage.googleapis.com/[BUCKET_NAME]?versions"
Eine GET
-Anfrage liefert unterschiedliche Ergebnisse, je nachdem, ob der Abfrageparameter versions
verwendet wird oder nicht.
Cloud Storage gibt die folgenden Informationen zurück, wenn Sie einen versions
-Abfrageparameter in Ihre Anfrage einfügen:
- Ein
Version
-Element mit Informationen zu dem jeweiligen Objekt. - Ein
DeletedTime
-Element, das die Zeit angibt, zu der das Objekt archiviert (gelöscht oder überschrieben) wurde. - Ein `IsLatest-Element, das angibt, ob das Objekt die neueste Version ist.
- Ein
NextGenerationMarker
-Element wird zurückgegeben, wenn die Liste der Objekte nur einen Teil umfasst. Dies geschieht, wenn sich in einem Bucket viele Objektversionen befinden. Verwenden Sie den Wert dieses Elements im Abfrageparametergenerationmarker
nachfolgender Anfragen, um vom letzten Punkt aus fortzufahren. Der Abfrageparametergenerationmarker
wird genauso verwendet wie der Abfrageparametermarker
, um in der Auflistung eines nicht versionierten Buckets zu suchen.
Auf archivierte Objektversionen zugreifen
So greifen Sie auf eine archivierte Version eines Objekts zu:
gsutil
Hängen Sie die
generation
-Nummer des archivierten Objekts an den Objektnamen an und ersetzen Sie[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:[OBJECT_NAME]#[GENERATION_NUMBER]
Fahren Sie mit dem String aus Schritt 1 wie bei einem Liveobjekt fort.
REST APIs
JSON API
Hängen Sie die
generation
-Nummer des archivierten Objekts an den URI des Objekts an. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
Fahren Sie mit dem URI aus Schritt 1 wie bei einem Liveobjekt fort.
XML API
Hängen Sie die
generation
-Nummer des archivierten Objekts an den URI des Objekts an. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
Fahren Sie mit dem URI aus Schritt 1 wie bei einem Liveobjekt fort.
Archivierte Objektversionen kopieren
So kopieren Sie eine archivierte Version eines Objekts:
gsutil
Verwenden Sie den Befehl gsutil cp
. Ersetzen Sie dabei [VALUES_IN_BRACKETS]
durch die entsprechenden Werte:
gsutil cp gs://[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]#[GENERATION_NUMBER] gs://[DESTINATION_BUCKET_NAME]/[DESTINATION_OBJECT_NAME]
Wenn der Vorgang erfolgreich war, sieht die Antwort so aus:
Operation completed over 1 objects/58.8 KiB.
REST APIs
JSON API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Verwenden Sie
cURL
, um die JSON API mit einerPOST
-Objektanfrage aufzurufen. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:curl -X POST \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ -H "Content-Length: 0" \ "https://www.googleapis.com/upload/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET_NAME]/o/[NAME_OF_COPY]?sourceGeneration=[GENERATION_NUMBER]"
XML API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Verwenden Sie
cURL
, um die XML API mit einerPUT
-Objektanfrage aufzurufen. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:curl -X PUT \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ -H "x-goog-copy-source: [SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]" \ -H "x-goog-copy-source-generation:[GENERATION_NUMBER]" \ "https://storage.googleapis.com/[DESTINATION_BUCKET_NAME]/[NAME_OF_COPY]"
Archivierte Objektversionen löschen
So löschen Sie eine archivierte Version eines Objekts:
gsutil
Verwenden Sie den Befehl gsutil rm
. Ersetzen Sie dabei [VALUES_IN_BRACKETS]
durch die entsprechenden Werte:
gsutil rm gs://[BUCKET_NAME]/[OBJECT_NAME]#[GENERATION_NUMBER]
Wenn der Vorgang erfolgreich war, sieht die Antwort so aus:
Operation completed over 1 objects.
REST APIs
JSON API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Verwenden Sie
cURL
, um die JSON API mit einerDELETE
-Objektanfrage aufzurufen. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:curl -X DELETE \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"
XML API
- Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
Verwenden Sie
cURL
, um die XML API mit einerDELETE
-Objektanfrage aufzurufen. Ersetzen Sie dabei[VALUES_IN_BRACKETS]
durch die entsprechenden Werte:curl -X DELETE \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"