このページでは、バケットのオブジェクト バージョニングの有効化、無効化、およびステータスの確認を行う方法について説明します。オブジェクトのバージョニングによって保持されているオブジェクトを一覧表示、復元、削除する方法については、バージョニングされたオブジェクトの使用をご覧ください。
必要なロール
バケットでオブジェクトのバージョニングの設定と管理に必要な権限を取得するには、バケットまたはバケットを含むプロジェクトに対するストレージ管理者(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
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。次の情報が含まれる JSON ファイルを作成します。
{ "versioning": { "enabled": STATE } }
ここで、STATE は
true
またはfalse
です。cURL
を使用して JSON API を呼び出し、PATCH
Bucket リクエストを行います。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
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。次の情報が含まれる XML ファイルを作成します。
<VersioningConfiguration> <Status>STATE</Status> </VersioningConfiguration>
ここで、STATE は
Enabled
またはSuspended
です。cURL
を使用して、PUT
Bucket リクエストと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)"
ここで、BUCKET_NAME
はステータスを表示するバケットの名前です。例: my-bucket
成功してオブジェクトのバージョニングが有効になっている場合、レスポンスは次の例のようになります。
versioning: enabled: true
成功してオブジェクトのバージョニングが有効になっていない場合、レスポンスは次の例のようになります。
null
REST API
JSON API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して JSON API を呼び出し、GET
Bucket リクエストを行います。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
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して、GET
Bucket リクエストと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/>
次のステップ
- オブジェクトのバージョニングの詳細を確認する。
- 非現行オブジェクトの操作方法を学習する。
- オブジェクトのライフサイクル管理でオブジェクトのバージョンを自動的に管理する方法を学習する。
- リクエストの前提条件を満たして競合状態を防ぐ方法について学習する。