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

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

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

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 "nearline" for bucket gs://my-bucket

コードサンプル

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

次のステップ