Como alterar a classe de armazenamento padrão de um bucket

Nesta página, você aprenderá como alterar a classe de armazenamento padrão dos seus buckets. Ao carregar um objeto para o bucket, o objeto receberá a classe de armazenamento padrão do bucket se você não especificar uma classe de armazenamento para ele. Para uma visão geral dos buckets, leia Termos importantes. Para saber mais sobre as classes de armazenamento, consulte Classes de armazenamento.

Veja como alterar a classe de armazenamento padrão de um bucket existente:

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abra o navegador do Cloud Storage
  2. Na lista de buckets, encontre o bucket que quer modificar e clique no menu flutuante bucket ().

  3. Clique em Editar classe de armazenamento padrão.

  4. Na janela de sobreposição, selecione a nova classe de armazenamento padrão que você quer para seu bucket.

  5. Clique em Salvar.

Consulte a Solução de problemas para informações detalhadas sobre erros de operações com falha no navegador do Cloud Storage.

gsutil

Use o comando gsutil defstorageclass set:

gsutil defstorageclass set STORAGE_CLASS gs://BUCKET_NAME

Em que:

  • STORAGE_CLASS é a nova classe de armazenamento escolhida para o bucket. Por exemplo, nearline.
  • BUCKET_NAME é o nome do bucket relevante. Por exemplo, my-bucket.

A resposta terá esta aparência:

Setting default storage class to "nearline" for bucket gs://my-bucket

Amostras de código

C++

Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.

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

Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.

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());
  }
}

Python

Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.

from google.cloud import storage
from google.cloud.storage import constants

def change_default_storage_class(bucket_name):
    """Change the default storage class of the bucket"""
    # bucket_name = "your-bucket-name"

    storage_client = storage.Client()

    bucket = storage_client.get_bucket(bucket_name)
    bucket.storage_class = constants.COLDLINE_STORAGE_CLASS
    bucket.patch()

    print("Default storage class for bucket {} has been set to {}".format(bucket_name, bucket.storage_class))
    return bucket

APIs REST

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json que contenha as seguintes informações:

    {
      "storageClass": "STORAGE_CLASS"
    }

    Em que STORAGE_CLASS é a nova classe de armazenamento escolhida para o bucket. Por exemplo, nearline.

  3. Use cURL para chamar a API JSON com uma solicitação de bucket PATCH:

    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"

    Em que:

    • JSON_FILE_NAME é o nome do arquivo JSON criado na Etapa 2.
    • OAUTH2_TOKEN é o token de acesso gerado na Etapa 1.
    • BUCKET_NAME é o nome do bucket pertinente. Por exemplo, my-bucket.

API XML

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .xml que contenha as seguintes informações:

    <StorageClass>STORAGE_CLASS</StorageClass>

    Em que STORAGE_CLASS é o nome da nova classe de armazenamento escolhida para o bucket. Por exemplo, nearline.

  3. Use cURL para chamar a API XML com uma solicitação PUT bucket:

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

    Em que:

    • XML_FILE_NAME é o nome do arquivo XML criado na Etapa 2.
    • OAUTH2_TOKEN é o token de acesso gerado na Etapa 1.
    • BUCKET_NAME é o nome do bucket pertinente. Por exemplo, my-bucket.

A seguir