Cambia la clase de almacenamiento predeterminada de un depósito

En esta página, se muestra cómo cambiar la clase de almacenamiento predeterminada para tus depósitos. Cuando subes un objeto al depósito, se le asigna la clase de almacenamiento predeterminada del depósito, en caso de que no especifiques una clase de almacenamiento para el objeto. Para obtener una descripción general de los depósitos, consulta los Términos clave. Para obtener más información sobre las clases de almacenamiento, consulta las Clases de almacenamiento.

Para cambiar la clase de almacenamiento predeterminada de un depósito existente, sigue estos pasos:

Console

  1. Abre el navegador de Cloud Storage en Google Cloud Console.
    Abrir el navegador de Cloud Storage
  2. En la lista de depósitos, busca el depósito que deseas modificar y haz clic en su menú Ampliado del depósito ().

  3. Haz clic en Editar clase de almacenamiento predeterminada.

  4. En la ventana de superposición, selecciona la clase de almacenamiento predeterminada nueva que quieres para tu depósito.

  5. Haz clic en Guardar.

Consulta Solución de problemas para obtener información detallada sobre las operaciones con errores en el navegador de Cloud Storage.

gsutil

Usa el comando gsutil defstorageclass set:

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

Donde:

  • [STORAGE_CLASS] es la clase de almacenamiento nueva que deseas para tu depósito. Por ejemplo, nearline.
  • [BUCKET_NAME] es el nombre del depósito correspondiente. Por ejemplo, my-bucket.

La respuesta se ve como el siguiente ejemplo:

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

Muestras de código

C++

Si deseas obtener más información, consulta la documentación de referencia de la API de 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

Si deseas obtener más información, consulta la documentación de referencia de la API de 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());
  }
}

API de REST

API de JSON

  1. Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
  2. Crea un archivo .json que contenga la siguiente información:

    {
      "storageClass": "[STORAGE_CLASS]"
    }

    En el que, [STORAGE_CLASS] es la clase de almacenamiento nueva que deseas para tu depósito. Por ejemplo, nearline.

  3. Usa cURL para llamar a la API de JSON con una solicitud de depósito 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"

    En el ejemplo anterior, se ilustra lo siguiente:

    • [JSON_FILE_NAME] es el nombre del archivo JSON que creaste en el paso 2.
    • [OAUTH2_TOKEN] es el token de acceso que generaste en el paso 1.
    • [BUCKET_NAME] es el nombre del depósito correspondiente. Por ejemplo, my-bucket.

API de XML

  1. Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
  2. Crea un archivo .xml que contenga la siguiente información:

    <StorageClass>[STORAGE_CLASS]</StorageClass>

    En el que, [STORAGE_CLASS] es el nombre de la clase de almacenamiento nueva que deseas para tu depósito. Por ejemplo, nearline.

  3. Usa cURL para llamar a la API de XML con una solicitud de depósito PUT:

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

    En el ejemplo anterior, se ilustra lo siguiente:

    • [XML_FILE_NAME] es el nombre del archivo XML que creaste en el paso 2.
    • [OAUTH2_TOKEN] es el token de acceso que generaste en el paso 1.
    • [BUCKET_NAME] es el nombre del depósito correspondiente. Por ejemplo, my-bucket.

Próximos pasos