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

概要 用途

このページでは、バケットのオブジェクト バージョニングの有効化、無効化、およびステータスの確認を行う方法について説明します。オブジェクトのバージョニングによって保持されているオブジェクトを一覧表示、復元、削除する方法については、バージョニングされたオブジェクトの使用をご覧ください。

必要なロール

バケットでオブジェクトのバージョニングの設定と管理に必要な権限を取得するには、バケットまたはバケットを含むプロジェクトに対するストレージ管理者(roles/storage.admin)IAM ロールを付与するよう管理者に依頼してください。この事前定義ロールには、バケットのオブジェクトのバージョニングの設定と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

  • storage.buckets.get
  • storage.buckets.update
  • storage.buckets.list
    • この権限は、Google Cloud コンソールを使用してこのページの手順を実施する場合にのみ必要です。

カスタムロールを使用して、これらの権限を取得することも可能な場合があります。

バケットに対するロールの付与については、バケットでの IAM ポリシーの設定と管理をご覧ください。プロジェクトでのロールの付与については、プロジェクトへのアクセス権の管理をご覧ください。

バケットでオブジェクトのバージョニングを設定する

オブジェクトのバージョニングを有効または無効にするには、バケットでこの機能を設定します。オブジェクトのバージョニングが有効になると、オブジェクトのライブ バージョンが置換または削除されるたびに、そのバージョンが非現行バージョンになります。

コンソール

  1. Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。

    [バケット] に移動

  2. バケットのリストで、オブジェクトのバージョニングを有効または無効にするバケットの名前をクリックします。

  3. ページ上部にある [保護] タブを選択します。

    オブジェクトのバージョニングの現在のステータスが、[オブジェクトのバージョニング] セクションに表示されます。

  4. [オブジェクトのバージョニング] セクションで、現在のステータスをクリックして変更します。

    [オブジェクトのバージョニング] ダイアログが表示されます。

    1. オブジェクトのバージョニングを有効にしてストレージ コストを最小限に抑えるには、[おすすめのライフサイクル ルールを追加してバージョン費用を管理する] チェックボックスをオンにします。
  5. [確認] をクリックします。

コマンドライン

適切なフラグを指定して、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 に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

次のサンプルでは、バケットでオブジェクトのバージョニングを有効にします。

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name) {
  StatusOr<gcs::BucketMetadata> original =
      client.GetBucketMetadata(bucket_name);
  if (!original) throw std::move(original).status();

  StatusOr<gcs::BucketMetadata> patched = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetVersioning(
          gcs::BucketVersioning{true}),
      gcs::IfMetagenerationMatch(original->metageneration()));
  if (!patched) throw std::move(patched).status();

  if (patched->versioning().has_value()) {
    std::cout << "Object versioning for bucket " << bucket_name << " is "
              << (patched->versioning()->enabled ? "enabled" : "disabled")
              << "\n";
  } else {
    std::cout << "Object versioning for bucket " << bucket_name
              << " is disabled.\n";
  }
}

次のサンプルでは、バケットでオブジェクトのバージョニングを無効にします。

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name) {
  StatusOr<gcs::BucketMetadata> original =
      client.GetBucketMetadata(bucket_name);
  if (!original) throw std::move(original).status();

  StatusOr<gcs::BucketMetadata> patched = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetVersioning(
          gcs::BucketVersioning{false}),
      gcs::IfMetagenerationMatch(original->metageneration()));
  if (!patched) throw std::move(patched).status();

  auto versioning =
      patched->versioning().value_or(gcs::BucketVersioning{false});
  std::cout << "Object versioning for bucket " << bucket_name << " is "
            << (versioning.enabled ? "enabled" : "disabled") << "\n";
}

C#

詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。

Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

次のサンプルでは、バケットでオブジェクトのバージョニングを有効にします。


using Google.Apis.Storage.v1.Data;
using Google.Cloud.Storage.V1;
using System;

public class BucketEnableVersioningSample
{
	public Bucket BucketEnableVersioning(string bucketName = "your-bucket-name"