このページでは、バケットのオブジェクト バージョニングの有効化、無効化、およびステータスの確認を行う方法について説明します。オブジェクトのバージョニングによって保持されているオブジェクトを一覧表示、復元、削除する方法については、バージョニングされたオブジェクトの使用をご覧ください。
必要なロール
バケットでオブジェクトのバージョニングの設定と管理に必要な権限を取得するには、バケットまたはバケットを含むプロジェクトに対するストレージ管理者(roles/storage.admin)IAM ロールを付与するよう管理者に依頼してください。この事前定義ロールには、バケットのオブジェクトのバージョニングの設定と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
- storage.buckets.get
- storage.buckets.update
- storage.buckets.list- この権限は、Google Cloud コンソールを使用してこのページの手順を実施する場合にのみ必要です。
 
カスタムロールを使用して、これらの権限を取得することも可能な場合があります。
バケットに対するロールの付与については、バケットでの IAM ポリシーの設定と管理をご覧ください。プロジェクトに対するロールの付与については、プロジェクトへのアクセス権を管理するをご覧ください。
バケットでオブジェクトのバージョニングを設定する
コンソール
-  Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
- バケットのリストで、オブジェクトのバージョニングを有効または無効にするバケットの名前をクリックします。 
- ページ上部にある [保護] タブを選択します。 - オブジェクトのバージョニングの現在のステータスが、[オブジェクトのバージョニング] セクションに表示されます。 
- [オブジェクトのバージョニング] セクションで、現在のステータスをクリックして変更します。 - [オブジェクトのバージョニング] ダイアログが表示されます。 - オブジェクトのバージョニングを有効にしてストレージ コストを最小限に抑えるには、[おすすめのライフサイクル ルールを追加してバージョン費用を管理する] チェックボックスをオンにします。
 
- [確認] をクリックします。 
コマンドライン
適切なフラグを指定して、gcloud storage buckets update コマンドを使用します。
gcloud storage buckets update gs://BUCKET_NAME FLAG
ここで
- BUCKET_NAMEは、関連するバケットの名前です。例:- my-bucket
- オブジェクトのバージョニングを有効にする場合、 - FLAGは- --versioningです。無効にする場合は- --no-versioningです。
正常に終了すると、レスポンスは次の例のようになります。
Updating gs://my-bucket/... Completed 1
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
次のサンプルでは、バケットでオブジェクトのバージョニングを有効にします。
次のサンプルでは、バケットでオブジェクトのバージョニングを無効にします。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
次のサンプルでは、バケットでオブジェクトのバージョニングを有効にします。
次のサンプルでは、バケットでオブジェクトのバージョニングを無効にします。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
次のサンプルでは、バケットでオブジェクトのバージョニングを有効にします。
次のサンプルでは、バケットでオブジェクトのバージョニングを無効にします。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
次のサンプルでは、バケットでオブジェクトのバージョニングを有効にします。
次のサンプルでは、バケットでオブジェクトのバージョニングを無効にします。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
次のサンプルでは、バケットでオブジェクトのバージョニングを有効にします。
次のサンプルでは、バケットでオブジェクトのバージョニングを無効にします。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
次のサンプルでは、バケットでオブジェクトのバージョニングを有効にします。
次のサンプルでは、バケットでオブジェクトのバージョニングを無効にします。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
次のサンプルでは、バケットでオブジェクトのバージョニングを有効にします。
次のサンプルでは、バケットでオブジェクトのバージョニングを無効にします。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。
次のサンプルでは、バケットでオブジェクトのバージョニングを有効にします。
次のサンプルでは、バケットでオブジェクトのバージョニングを無効にします。
REST API
JSON API
- gcloud CLI をインストールして初期化します。これにより、 - Authorizationヘッダーのアクセス トークンを生成できます。
- 次の情報が含まれる JSON ファイルを作成します。 - { "versioning": { "enabled": STATE } } - ここで、STATE は - trueまたは- falseです。
- cURLを使用して、- PATCHBucket リクエストで JSON API を呼び出します。- curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning" - ここで - JSON_FILE_NAMEは、手順 2 で作成した JSON ファイルのパスです。
- BUCKET_NAMEは、関連するバケットの名前です。たとえば- my-bucketです。
 
XML API
- gcloud CLI をインストールして初期化します。これにより、 - Authorizationヘッダーのアクセス トークンを生成できます。
- 次の情報が含まれる XML ファイルを作成します。 - <VersioningConfiguration> <Status>STATE</Status> </VersioningConfiguration> - ここで、STATE は - Enabledまたは- Suspendedです。
- cURLを使用して、- PUTBucket リクエストと- versioningクエリ文字列パラメータを含めた XML API を呼び出します。- curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?versioning" - ここで - XML_FILE_NAMEは、手順 2 で作成した XML ファイルのパスです。
- BUCKET_NAMEは、関連するバケットの名前です。例:- my-bucket
 
オブジェクトのバージョニングが有効になると、オブジェクトのライブ バージョンが置換または削除されるたびに、そのバージョンが非現行バージョンになります。
オブジェクトのバージョニングが有効になっているかどうかを確認する
バケットでオブジェクトのバージョニングが有効になっているかどうかを確認するには:
コンソール
-  Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
- バケットリストの [保護] 列に、各バケットのオブジェクトのバージョニングのステータスが表示されます。 
有効の場合は、[オブジェクトのバージョニング] というテキストが表示されます。
コマンドライン
gcloud storage buckets describe コマンドを使用し、--format フラグを指定します。
gcloud storage buckets describe gs://BUCKET_NAME --format="default(versioning_enabled)"
ここで、BUCKET_NAME はステータスを表示するバケットの名前です。例: my-bucket
成功してオブジェクトのバージョニングが有効になっている場合、レスポンスは次の例のようになります。
versioning: enabled: true
成功してオブジェクトのバージョニングが有効になっていない場合、レスポンスは次の例のようになります。
nullREST API
JSON API
- gcloud CLI をインストールして初期化します。これにより、 - Authorizationヘッダーのアクセス トークンを生成できます。
- cURLを使用して、- GETBucket リクエストで JSON API を呼び出します。- curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning" - BUCKET_NAMEは、該当するバケットの名前です。例:- my-bucket。
成功してオブジェクトのバージョニングが有効になっている場合、レスポンスは次の例のようになります。
{ "versioning": { "enabled": true } }
成功してオブジェクトのバージョニングが有効になっていない場合、レスポンスは次の例のようになります。
{}XML API
- gcloud CLI のインストールと初期化を行います。これにより、 - Authorizationヘッダーのアクセス トークンを生成できます。
- cURLを使用して、- GETBucket リクエストと- versioningクエリ文字列パラメータを含めた XML API を呼び出します。- curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?versioning" - BUCKET_NAMEは、該当するバケットの名前です。例:- my-bucket。
成功してオブジェクトのバージョニングが有効になっている場合、レスポンスは次の例のようになります。
<VersioningConfiguration>
  <Status>Enabled</Status>
</VersioningConfiguration>成功してオブジェクトのバージョニングが有効になっていない場合、レスポンスは次の例のようになります。
<VersioningConfiguration/>
次のステップ
- オブジェクトのバージョニングの詳細を確認する。
- 非現行オブジェクトの操作方法を学習する。
- オブジェクトのライフサイクル管理でオブジェクトのバージョンを自動的に管理する方法を学習する。
- リクエストの前提条件を満たして競合状態を防ぐ方法について学習する。