バケットのデフォルト ストレージ クラスの変更

このページでは、バケットのデフォルトのストレージ クラスを変更する方法を示します。 オブジェクトをバケットにアップロードするときにオブジェクトのストレージ クラスを指定しないと、バケットのデフォルトのストレージ クラスが割り当てられます。バケットの概要については、主な用語をご覧ください。ストレージ クラスの詳細については、ストレージ クラスをご覧ください。

既存のバケットのデフォルトのストレージ クラスを変更するには:

Console

  1. Google Cloud Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. バケットリストで、変更するバケットを探して、その [バケット オーバーフロー] メニュー()をクリックします。

  3. [デフォルトのストレージ クラスを編集] をクリックします。

  4. 上に重なったウィンドウで、バケットに新しいデフォルトのストレージ クラスを選択します。

  5. [保存] をクリックします。

トラブルシューティングで、Cloud Storage ブラウザで失敗したオペレーションに関する詳細なエラー情報を取得する方法をご覧ください。

gsutil

gsutil defstorageclass set コマンドを使用します。

gsutil defstorageclass set [STORAGE_CLASS] gs://[BUCKET_NAME]

ここで

  • [STORAGE_CLASS] は、バケットに追加する新しいストレージ クラスです。たとえば、nearline です。
  • [BUCKET_NAME] は、該当するバケットの名前です。たとえば、my-bucket です。

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

Setting default storage class to "[STORAGE_CLASS]" for bucket gs://[BUCKET_NAME]

コードサンプル

C++

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

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

  if (!original) throw std::runtime_error(original.status().message());
  gcs::BucketMetadata desired = *original;
  desired.set_storage_class(storage_class);

  StatusOr<gcs::BucketMetadata> patched =
      client.PatchBucket(bucket_name, *original, desired);

  if (!patched) throw std::runtime_error(patched.status().message());
  std::cout << "Storage class for bucket " << patched->name()
            << " has been patched to " << patched->storage_class() << "."
            << "\nFull metadata: " << *patched << "\n";
}

Java

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

import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageClass;
import com.google.cloud.storage.StorageOptions;

public class ChangeDefaultStorageClass {
  public static void changeDefaultStorageClass(String projectId, String bucketName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    // See the StorageClass documentation for other valid storage classes:
    // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/StorageClass.html
    StorageClass storageClass = StorageClass.COLDLINE;

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Bucket bucket = storage.get(bucketName);
    bucket = bucket.toBuilder().setStorageClass(storageClass).build().update();

    System.out.println(
        "Default storage class for bucket "
            + bucketName
            + " has been set to "
            + bucket.getStorageClass());
  }
}

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
  2. 次の情報が含まれる .json ファイルを作成します。

    {
      "storageClass": "[STORAGE_CLASS]"
    }

    ここで、[STORAGE_CLASS] は、バケットに追加する新しいストレージ クラスです。例: nearline

  3. 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=storageClass"

    ここで

    • [JSON_FILE_NAME] は手順 2 で作成した JSON ファイルの名前です。
    • [OAUTH2_TOKEN] は、ステップ 1 で生成したアクセス トークンです。
    • [BUCKET_NAME] は、該当するバケットの名前です。例: my-bucket

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するようにプレイグラウンドを構成します。
  2. 次の情報が含まれる .xml ファイルを作成します。

    <StorageClass>[STORAGE_CLASS]</StorageClass>

    ここで、[STORAGE_CLASS] は、バケットに追加する新しいストレージ クラス名です。例: nearline

  3. cURL を使用して XML API を呼び出し、PUT Bucket リクエストを行います。

    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/[BUCKET_NAME]?storageClass"

    ここで

    • [XML_FILE_NAME] は手順 2 で作成した XML ファイルの名前です。
    • [OAUTH2_TOKEN] は、ステップ 1 で生成したアクセス トークンです。
    • [BUCKET_NAME] は、該当するバケットの名前です。たとえば、my-bucket です。

次のステップ