Objektversionierung verwenden

Auf dieser Seite wird beschrieben, wie Sie die Objektversionierung einrichten. Anhand von Beispielen wird ihr Einsatz gezeigt. Eine Beschreibung dieser Funktion finden Sie im Kapitel Objektversionierung.

Objektversionierung einrichten

In den folgenden Abschnitten wird gezeigt, wie Sie die Objektversionierung 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.

Objektversionierung aktivieren

So aktivieren Sie die Objektversionierung für einen Bucket:

gsutil

Verwenden Sie den Befehl gsutil versioning set on und ersetzen Sie [VALUES_IN_BRACKETS] durch die entsprechenden Werte:

gsutil versioning set on gs://[BUCKET_NAME]

REST APIs

JSON API

  1. 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.
  2. Erstellen Sie eine JSON-Datei, die die folgenden Informationen enthält:
  3. {
      "versioning": {
        "enabled": true
      }
    }
  4. Verwenden Sie cURL, um die JSON API mit einer PATCH Bucket-Anfrage aufzurufen. Ersetzen Sie [VALUES_IN_BRACKETS] dabei 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

  1. 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.
  2. Erstellen Sie eine XML-Datei, die die folgenden Informationen enthält, und ersetzen Sie [VALUES_IN_BRACKETS] durch die entsprechenden Werte:
    <VersioningConfiguration>
      <Status>Enabled</Status>
    </VersioningConfiguration>
  3. Verwenden Sie cURL, um die XML API mit einer PUT Bucket-Anfrage und einem versioning-Abfragestringparameter 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 Objektversionierung erstellt Cloud Storage bei jedem Überschreiben oder Löschen der Liveversion des Objekts eine archivierte Objektversion.

Objektversionierung deaktivieren

So deaktivieren Sie die Objektversionierung für einen Bucket:

gsutil

Verwenden Sie den Befehl gsutil versioning set off und ersetzen Sie [VALUES_IN_BRACKETS] durch die entsprechenden Werte:

gsutil versioning set off gs://[BUCKET_NAME]

REST APIs

JSON API

  1. 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.
  2. Erstellen Sie eine JSON-Datei, die die folgenden Informationen enthält:
  3. {
      "versioning": {
        "enabled": false
      }
    }
  4. Verwenden Sie cURL, um die JSON API mit einer PATCH Bucket-Anfrage aufzurufen. Ersetzen Sie [VALUES_IN_BRACKETS] dabei 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

  1. 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.
  2. Erstellen Sie eine XML-Datei, die die folgenden Informationen enthält, und ersetzen Sie [VALUES_IN_BRACKETS] durch die entsprechenden Werte:
    <VersioningConfiguration>
      <Status>Suspended</Status>
    </VersioningConfiguration>
  3. Verwenden Sie cURL, um die XML API mit einer PUT Bucket-Anfrage und einem versioning-Abfragestringparameter 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 Objektversionierung aktiviert ist

So überprüfen Sie, ob die Objektversionierung für einen Bucket aktiviert ist:

gsutil

Verwenden Sie den Befehl gsutil versioning get und ersetzen Sie [VALUES_IN_BRACKETS] durch die entsprechenden Werte:

gsutil versioning get gs://[BUCKET_NAME]

Die Antwort sieht in etwa so aus, wenn die Objektversionierung aktiviert ist:

gs://[BUCKET_NAME]: Enabled

REST APIs

JSON API

  1. 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.
  2. Verwenden Sie cURL, um die JSON API mit einer GET Bucket-Anfrage aufzurufen. Ersetzen Sie [VALUES_IN_BRACKETS] dabei 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

  1. 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.
  2. Verwenden Sie cURL, um die XML API mit einer GET Bucket-Anfrage und einem versioning-Abfragestringparameter 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 tiefgreifendes Beispiel zum Arbeiten mit Objektversionierungen siehe Objektversionierungsbeispiel.

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 und ersetzen Sie [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

  1. 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.
  2. Verwenden Sie cURL, um die JSON API mit einer LIST Object-Anfrage aufzurufen. Ersetzen Sie [VALUES_IN_BRACKETS] dabei 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

  1. 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.
  2. Verwenden Sie cURL, um die XML API mit einer GET Bucket-Anfrage und einem versions-Abfragestringparameter 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 Element NextGenerationMarker, 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 generationmarker-Abfrageparameter nachfolgender Anfragen, um vom letzten Punkt aus fortzufahren. Der generationmarker-Parameter wird genauso verwendet wie der Abfrageparameter marker, 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

  1. 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]
  2. Fahren Sie mit dem String aus Schritt 1 wie bei einem Liveobjekt fort.

REST APIs

JSON API

  1. Hängen Sie die generation-Nummer des archivierten Objekts an den URI für das Objekt an und ersetzen Sie [VALUES_IN_BRACKETS] durch die entsprechenden Werte:
    https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. Fahren Sie mit dem URI aus Schritt 1 wie bei einem Liveobjekt fort.

XML API

  1. Hängen Sie die generation-Nummer des archivierten Objekts an den URI für das Objekt an und ersetzen Sie [VALUES_IN_BRACKETS] durch die entsprechenden Werte:
    https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. 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 und ersetzen Sie [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

  1. 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.
  2. Verwenden Sie cURL, um die JSON API mit einer POST Object-Anfrage aufzurufen. Ersetzen Sie [VALUES_IN_BRACKETS] dabei 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

  1. 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.
  2. Verwenden Sie cURL, um die XML API mit einer PUT Object-Anfrage aufzurufen. Ersetzen Sie [VALUES_IN_BRACKETS] dabei 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 und ersetzen Sie [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

  1. 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.
  2. Verwenden Sie cURL, um die JSON API mit einer DELETE Object-Anfrage aufzurufen. Ersetzen Sie [VALUES_IN_BRACKETS] dabei 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

  1. 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.
  2. Verwenden Sie cURL, um die XML API mit einer DELETE Object-Anfrage aufzurufen. Ersetzen Sie [VALUES_IN_BRACKETS] dabei durch die entsprechenden Werte:
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"
Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...