このページでは、オブジェクトのバージョニングの設定方法と使用例を示します。
オブジェクトのバージョニングの設定
以降のセクションでは、gsutil ツール、JSON API、XML API を使用してオブジェクトのバージョニングを有効または無効にする方法について説明します。現在、オブジェクトのバージョニングは Google Cloud Console を使用して制御できません。
オブジェクトのバージョニングの有効化
バケットでオブジェクトのバージョニングを有効にするには:
gsutil
gsutil versioning set on
コマンドを使用します。
gsutil versioning set on gs://BUCKET_NAME
BUCKET_NAME
は、該当するバケットの名前です。例: my-bucket
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
次の情報が含まれる
.json
ファイルを作成します。{ "versioning": { "enabled": true } }
cURL
を使用して JSON API を呼び出し、PATCH
Bucket リクエストを行います。curl -X PATCH --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
ここで
JSON_FILE_NAME
は、手順 2 で作成したファイルです。OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
次の情報が含まれている
.xml
ファイルを作成します。<VersioningConfiguration> <Status>Enabled</Status> </VersioningConfiguration>
cURL
を使用して、PUT
Bucket リクエストとversioning
クエリ文字列パラメータを含めた XML API を呼び出します。curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
ここで
XML_FILE_NAME
は、手順 2 で作成したファイルです。OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
オブジェクトのバージョニングが有効になると、オブジェクトのライブ バージョンが置換または削除されるたびに、そのバージョンが非現行バージョンになります。
オブジェクトのバージョニングの無効化
バケットでオブジェクトのバージョニングを無効にするには:
gsutil
gsutil versioning set off
コマンドを使用します。
gsutil versioning set off gs://BUCKET_NAME
BUCKET_NAME
は、該当するバケットの名前です。例: my-bucket
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
次の情報が含まれる
.json
ファイルを作成します。{ "versioning": { "enabled": false } }
cURL
を使用して JSON API を呼び出し、PATCH
Bucket リクエストを行います。curl -X PATCH --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
ここで
JSON_FILE_NAME
は、手順 2 で作成したファイルです。OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
次の情報が含まれている
.xml
ファイルを作成します。<VersioningConfiguration> <Status>Suspended</Status> </VersioningConfiguration>
cURL
を使用して、PUT
Bucket リクエストとversioning
クエリ文字列パラメータを含めた XML API を呼び出します。curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
ここで
XML_FILE_NAME
は、手順 2 で作成したファイルです。OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
オブジェクトのバージョニングが有効になっているかどうかの確認
バケットでオブジェクトのバージョニングが有効になっているかどうかを確認するには:
gsutil
gsutil versioning get
コマンドを使用します。
gsutil versioning get gs://BUCKET_NAME
BUCKET_NAME
は、該当するバケットの名前です。例: my-bucket
オブジェクトのバージョニングが有効になっている場合のレスポンスは次のようになります。
gs://my-bucket: Enabled
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して JSON API を呼び出し、GET
Bucket リクエストを行います。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
ここで
OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。
cURL
を使用して、GET
Bucket リクエストとversioning
クエリ文字列パラメータを含めた XML API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
ここで
OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
バージョニングされたオブジェクトの操作
以下では、バージョニングされたオブジェクトを操作する方法について説明します。オブジェクトのバージョニングの操作方法について詳しくは、オブジェクトのバージョン管理の例をご覧ください。
非現行バージョンのオブジェクトの一覧表示
オブジェクトのライブ バージョンと非現行バージョンの両方を一覧表示し、generation
番号を表示するには:
gsutil
gsutil ls -a
コマンドを使用します。
gsutil ls -a gs://BUCKET_NAME
BUCKET_NAME
は、該当するバケットの名前です。例: my-bucket
次の例のようなレスポンスになります。
gs://BUCKET_NAME/OBJECT_NAME1#GENERATION_NUMBER1 gs://BUCKET_NAME/OBJECT_NAME2#GENERATION_NUMBER2 gs://BUCKET_NAME/OBJECT_NAME3#GENERATION_NUMBER3 ...
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、LIST
Object リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?versions=true"
ここで
OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
非現行バージョンのオブジェクトには timeDeleted
プロパティがあります。
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。
cURL
を使用して、GET
Bucket リクエストとversions
クエリ文字列パラメータを含めた XML API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versions"
ここで
OAUTH2_TOKEN
は、手順 1 で作成したアクセス トークンです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
versions
クエリ文字列パラメータを使用する場合と使用しない場合では、GET
リクエストの結果にいくつかの違いが生じます。具体的には、リクエストに versions
クエリ パラメータを含めると、Cloud Storage から次の情報が返されます。
- 各オブジェクトに関する情報が含まれる
Version
要素。 - オブジェクトが非現行バージョンになった(削除や置換)時間を含む
DeletedTime
要素。 - 特定のオブジェクトが最新バージョンかどうかを示す IsLatest 要素。
- オブジェクトのリストが部分的なリストである場合は、
NextGenerationMarker
要素が返されます。これは、バケットに多数のオブジェクトのバージョンがある場合に発生します。最後のポイントから再開するには、後続のリクエストのgenerationmarker
クエリ パラメータでこの要素の値を使用します。generationmarker
クエリ パラメータは、marker
クエリ パラメータを使用して、バージョニングされていないバケットのリストをページ割り付けするのと同じ方法で使用されます。
非現行バージョンのオブジェクトへのアクセス
オブジェクトのダウンロード、オブジェクトのメタデータの表示、オブジェクトのメタデータの更新などのタスクを実行するときにオブジェクトの非現行バージョンを使用するには:
gsutil
オブジェクト名に、非現行バージョンの
generation
番号を追加します。OBJECT_NAME#GENERATION_NUMBER
ここで
OBJECT_NAME
は、非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、非現行バージョンの世代番号です。例:1560468815691234
手順 1 の文字列を使用して、通常のライブ バージョンのオブジェクトの場合と同じように処理します。
REST API
JSON API
オブジェクトの URI に非現行バージョンの
generation
番号を追加します。https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER
ここで
BUCKET_NAME
は、非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、非現行バージョンの世代番号です。例:1560468815691234
手順 1 の URI を使用して、通常のライブ バージョンのオブジェクトの場合と同じように処理します。
XML API
オブジェクトの URI に非現行バージョンの
generation
番号を追加します。https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER
ここで
BUCKET_NAME
は、非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、非現行バージョンの世代番号です。例:1560468815691234
手順 1 の URI を使用して、通常のライブ バージョンのオブジェクトの場合と同じように処理します。
非現行バージョンのオブジェクトのコピー
非現行バージョンのオブジェクトをコピーするには:
gsutil
gsutil cp
コマンドを使用します。
gsutil cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME#GENERATION_NUMBER gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME
ここで
SOURCE_BUCKET_NAME
は、コピーする非現行バージョンを含むバケットの名前です。例:my-bucket
SOURCE_OBJECT_NAME
は、コピーする非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、コピーする非現行バージョンの世代番号です。例:1560468815691234
DESTINATION_BUCKET_NAME
は、非現行バージョンをコピーするバケットの名前です。例:my-bucket
DESTINATION_OBJECT_NAME
は、非現行バージョンのコピーの名前です。例:pets/shiba.png
成功した場合は、次の例のようなレスポンスになります。
Operation completed over 1 objects/58.8 KiB.
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、POST
Object リクエストで JSON API を呼び出します。curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Length: 0" \ "https://storage.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"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。SOURCE_BUCKET_NAME
は、コピーする非現行バージョンを含むバケットの名前です。例:my-bucket
SOURCE_OBJECT_NAME
は、コピーする非現行バージョンの名前です。例:pets/dog.png
DESTINATION_BUCKET_NAME
は、非現行バージョンをコピーするバケットの名前です。例:my-bucket
NAME OF COPY
は、非現行バージョンのコピーの名前です。例:pets/shiba.png
GENERATION_NUMBER
は、コピーする非現行バージョンの世代番号です。例:1560468815691234
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。
cURL
を使用して、PUT
Object リクエストで XML API を呼び出します。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"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。SOURCE_BUCKET_NAME
は、コピーする非現行バージョンを含むバケットの名前です。例:my-bucket
SOURCE_OBJECT_NAME
は、コピーする非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、コピーする非現行バージョンの世代番号です。例:1560468815691234
DESTINATION_BUCKET_NAME
は、非現行バージョンをコピーするバケットの名前です。例:my-bucket
NAME OF COPY
は、非現行バージョンのコピーの名前です。例:pets/shiba.png
非現行バージョンのオブジェクトの削除
非現行バージョンのオブジェクトを削除するには:
gsutil
gsutil rm
コマンドを使用します。
gsutil rm gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
ここで
BUCKET_NAME
は、削除する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、削除する非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、削除する非現行バージョンの世代番号です。例:1560468815691234
成功した場合は、次の例のようなレスポンスになります。
Operation completed over 1 objects.
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
REST API
JSON API
- OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
cURL
を使用して、DELETE
Object リクエストで JSON API を呼び出します。curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、削除する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、削除する非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、削除する非現行バージョンの世代番号です。例:1560468815691234
XML API
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を設定します。
cURL
を使用して、DELETE
Object リクエストで XML API を呼び出します。curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、削除する非現行バージョンを含むバケットの名前です。例:my-bucket
OBJECT_NAME
は、削除する非現行バージョンの名前です。例:pets/dog.png
GENERATION_NUMBER
は、削除する非現行バージョンの世代番号です。例:1560468815691234
次のステップ
- オブジェクトのバージョニングの詳細を確認する。
- オブジェクトのライフサイクル管理でオブジェクトのバージョンを自動的に管理する方法を学習する。