Modifier la classe de stockage par défaut d'un bucket

Cette page montre comment modifier la classe de stockage par défaut des buckets. Lorsque vous importez un objet dans un bucket sans lui allouer de classe de stockage, la classe de stockage par défaut du bucket lui est attribuée. Pour obtenir une présentation des buckets, consultez la page Termes clés. Pour en savoir plus sur les classes de stockage, reportez-vous à la page Classes de stockage.

Pour modifier la classe de stockage par défaut d'un bucket existant, procédez comme indiqué ci-dessous :

Console

  1. Ouvrez le navigateur Cloud Storage dans Google Cloud Console.
    Ouvrir le navigateur Cloud Storage
  2. Dans la liste de buckets, recherchez le bucket que vous souhaitez modifier, puis cliquez sur le menu déroulant qui lui est associé .

  3. Cliquez sur Modifier la classe de stockage par défaut.

  4. Dans la fenêtre superposée, sélectionnez la nouvelle classe de stockage par défaut que vous souhaitez définir pour votre bucket.

  5. Cliquez sur Save.

gsutil

Exécutez la commande gsutil defstorageclass set :

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

Où :

  • [STORAGE_CLASS] correspond à la nouvelle classe de stockage que vous souhaitez pour votre bucket. Par exemple, nearline.
  • [BUCKET_NAME] correspond au nom du bucket concerné. Exemple :my-bucket

La réponse est semblable à ceci :

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

Exemples de code

C++

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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 REST

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Créez un fichier .json contenant les informations suivantes :

    {
      "storageClass": "[STORAGE_CLASS]"
    }

    Ou [STORAGE_CLASS]correspond à la nouvelle classe de stockage que vous souhaitez pour votre bucket. Par exemple, nearline.

  3. Utilisez cURL pour appeler l'API JSON avec une requête 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"

    Où :

    • [JSON_FILE_NAME] correspond au nom du fichier JSON que vous avez créé à l'étape 2.
    • [OAUTH2_TOKEN] correspond au jeton d'accès que vous avez généré à l'étape 1.
    • [BUCKET_NAME] correspond au nom du bucket concerné. Exemple :my-bucket

API XML

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Créez un fichier .xml contenant les informations suivantes :

    <StorageClass>[STORAGE_CLASS]</StorageClass>

    [STORAGE_CLASS] correspond au nom de la nouvelle classe de stockage que vous souhaitez pour votre bucket. Par exemple, nearline.

  3. Utilisez cURL pour appeler l'API XML avec une requête PUTBucket :

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

    Où :

    • [XML_FILE_NAME] correspond au nom du fichier XML que vous avez créé à l'étape 2.
    • [OAUTH2_TOKEN] correspond au jeton d'accès que vous avez généré à l'étape 1.
    • [BUCKET_NAME] correspond au nom du bucket concerné. Exemple :my-bucket

Étapes suivantes