オブジェクトのバージョニングの使用

このページでは、オブジェクトのバージョニングの設定方法と使用例を示します。この機能の詳細については、オブジェクトのバージョニングをご覧ください。

オブジェクトのバージョニングの設定

以降のセクションでは、gsutil ツールJSON APIXML API を使用してオブジェクトのバージョニングを有効または無効にする方法について説明します。現時点では、Google Cloud Platform Console によってオブジェクトのバージョニングを制御できません。

オブジェクトのバージョニングの有効化

バケットでオブジェクトのバージョニングを有効にするには:

gsutil

gsutil versioning set on コマンドを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

gsutil versioning set on gs://[BUCKET_NAME]

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. 次の情報が含まれる .json ファイルを作成します。
  3. {
      "versioning": {
        "enabled": true
      }
    }
  4. cURL を使用して、JSON APIPATCH Bucket リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. 次の情報を含む .xml ファイルを作成します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    <VersioningConfiguration>
      <Status>Enabled</Status>
    </VersioningConfiguration>
  3. cURL を使用して、versioning クエリ文字列パラメータを含めた PUT Bucket リクエストで XML API を呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

オブジェクトのバージョニングを有効にすると、オブジェクトのライブ バージョンが上書きまたは削除されるたびに、Cloud Storage によってオブジェクトのアーカイブ バージョンが作成されます。

オブジェクトのバージョニングの無効化

バケットでオブジェクトのバージョニングを無効にするには:

gsutil

gsutil versioning set off コマンドを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

gsutil versioning set off gs://[BUCKET_NAME]

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. 次の情報が含まれる .json ファイルを作成します。
  3. {
      "versioning": {
        "enabled": false
      }
    }
  4. cURL を使用して、JSON APIPATCH Bucket リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. 次の情報を含む .xml ファイルを作成します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    <VersioningConfiguration>
      <Status>Suspended</Status>
    </VersioningConfiguration>
  3. cURL を使用して、versioning クエリ文字列パラメータを含めた PUT Bucket リクエストで XML API を呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

オブジェクトのバージョニングが有効になっているかどうかの確認

バケットでオブジェクトのバージョニングが有効になっているかどうかを確認するには:

gsutil

gsutil versioning get コマンドを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

gsutil versioning get gs://[BUCKET_NAME]

オブジェクトのバージョニングが有効になっている場合のレスポンスは次のようになります。

gs://[BUCKET_NAME]: Enabled

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、JSON APIGET Bucket リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、versioning クエリ文字列パラメータを含めた GET Bucket リクエストで XML API を呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X GET \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

バージョニングされたオブジェクトの操作

以下では、バージョニングされたオブジェクトを操作する方法について説明します。オブジェクトのバージョニングの操作方法について詳しくは、オブジェクトのバージョン管理の例をご覧ください。

アーカイブされたオブジェクトのバージョンを一覧表示する

オブジェクトのライブ バージョンとアーカイブ バージョンの両方を一覧表示し、generation 番号を表示するには:

gsutil

gsutil ls -a コマンドを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

gsutil ls -a gs://[BUCKET_NAME]

次の例のようなレスポンスになります。

gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER1]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER2]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER3]
...

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、LIST Object リクエストで JSON API を呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o?versions=true"

アーカイブ バージョンのオブジェクトには timeDeleted プロパティがあります。

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、versions クエリ文字列パラメータを含めた GET Bucket リクエストで XML API を呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versions"

versions クエリ パラメータを使用する場合と使用しない場合では、GET リクエストの結果にいくつかの違いがあります。具体的には、リクエストに versions クエリ パラメータを含めると、Cloud Storage から次の情報が返されます。

  • 各オブジェクトに関する情報が含まれる Version 要素。
  • オブジェクトがアーカイブ(削除または上書き)された時刻が含まれる DeletedTime 要素。
  • 特定のオブジェクトが最新バージョンかどうかを示す IsLatest 要素。
  • オブジェクトのリストが部分的なリストである場合は、NextGenerationMarker 要素が返されます。これは、バケットに多数のオブジェクトのバージョンがある場合に発生します。最後のポイントから再開するには、後続のリクエストの generationmarker クエリ パラメータでこの要素の値を使用します。generationmarker クエリ パラメータは、marker クエリ パラメータを使用して、バージョニングされていないバケットのリストをページ割り付けするのと同じ方法で使用されます。

アーカイブされたオブジェクトのバージョンへのアクセス

オブジェクトのアーカイブ バージョンにアクセスするには:

gsutil

  1. アーカイブされたオブジェクトの generation 番号をオブジェクト名に追加します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

    [OBJECT_NAME]#[GENERATION_NUMBER]
  2. 手順 1 の文字列を使用して、ライブ オブジェクトの場合と同様に処理します。

REST API

JSON API

  1. アーカイブされたオブジェクトの generation 番号をオブジェクトの URI に追加します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. 手順 1 の URI を使用して、ライブ オブジェクトの場合と同様に処理します。

XML API

  1. アーカイブされたオブジェクトの generation 番号をオブジェクトの URI に追加します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. 手順 1 の URI を使用して、ライブ オブジェクトの場合と同様に処理します。

アーカイブされたオブジェクトのバージョンのコピー

オブジェクトのアーカイブ バージョンをコピーするには:

gsutil

gsutil cp コマンドを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

gsutil cp gs://[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]#[GENERATION_NUMBER] gs://[DESTINATION_BUCKET_NAME]/[DESTINATION_OBJECT_NAME]

成功した場合は、次の例のようなレスポンスになります。

Operation completed over 1 objects/58.8 KiB.

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、JSON APIPOST Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、XML APIPUT Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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]"

アーカイブされたオブジェクトのバージョンの削除

オブジェクトのアーカイブ バージョンを削除するには:

gsutil

gsutil rm コマンドを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

gsutil rm gs://[BUCKET_NAME]/[OBJECT_NAME]#[GENERATION_NUMBER]

成功した場合は、次の例のようなレスポンスになります。

Operation completed over 1 objects.

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、JSON APIDELETE Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、XML APIDELETE Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。