更新 Cloud Storage 存储桶的存储类别。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
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::move(original).status();
gcs::BucketMetadata desired = *original;
desired.set_storage_class(storage_class);
StatusOr<gcs::BucketMetadata> patched =
client.PatchBucket(bucket_name, *original, desired);
if (!patched) throw std::move(patched).status();
std::cout << "Storage class for bucket " << patched->name()
<< " has been patched to " << patched->storage_class() << "."
<< "\nFull metadata: " << *patched << "\n";
}
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
using Google.Apis.Storage.v1.Data;
using Google.Cloud.Storage.V1;
using System;
public class ChangeDefaultStorageClassSample
{
public Bucket ChangeDefaultStorageClass(string bucketName = "your-bucket-name", string storageClass = StorageClasses.Standard)
{
var storage = StorageClient.Create();
var bucket = storage.GetBucket(bucketName);
bucket.StorageClass = storageClass;
bucket = storage.UpdateBucket(bucket);
Console.WriteLine($"Default storage class for bucket {bucketName} changed to {storageClass}.");
return bucket;
}
}
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
import (
"context"
"fmt"
"io"
"time"
"cloud.google.com/go/storage"
)
// changeDefaultStorageClass changes the storage class on a bucket.
func changeDefaultStorageClass(w io.Writer, bucketName string) error {
// bucketName := "bucket-name"
ctx := context.Background()
client, err := storage.NewClient(ctx)
if err != nil {
return fmt.Errorf("storage.NewClient: %v", err)
}
defer client.Close()
ctx, cancel := context.WithTimeout(ctx, time.Second*10)
defer cancel()
bucket := client.Bucket(bucketName)
newStorageClass := "COLDLINE"
bucketAttrsToUpdate := storage.BucketAttrsToUpdate{
StorageClass: newStorageClass,
}
if _, err := bucket.Update(ctx, bucketAttrsToUpdate); err != nil {
return fmt.Errorf("Bucket(%q).Update: %v", bucketName, err)
}
fmt.Fprintf(w, "Default storage class for bucket %v has been set to %v\n", bucketName, newStorageClass)
return nil
}
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());
}
}
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// The ID of your GCS bucket
// const bucketName = 'your-unique-bucket-name';
// The name of a storage class
// See the StorageClass documentation for other valid storage classes:
// https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/StorageClass.html
// const storageClass = 'coldline';
// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');
// Creates a client
const storage = new Storage();
async function changeDefaultStorageClass() {
await storage.bucket(bucketName).setStorageClass(storageClass);
console.log(`${bucketName} has been set to ${storageClass}`);
}
changeDefaultStorageClass().catch(console.error);
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
use Google\Cloud\Storage\StorageClient;
/**
* Change the default storage class for the given bucket.
*
* @param string $bucketName The name of your Cloud Storage bucket.
* (e.g. 'my-bucket')
*/
function change_default_storage_class(string $bucketName): void
{
$storage = new StorageClient();
$bucket = $storage->bucket($bucketName);
$storageClass = 'COLDLINE';
$bucket->update([
'storageClass' => $storageClass,
]);
printf(
'Default storage class for bucket %s has been set to %s',
$bucketName,
$storageClass
);
}
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
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(f"Default storage class for bucket {bucket_name} has been set to {bucket.storage_class}")
return bucket
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
def change_default_storage_class bucket_name:
# The ID of your GCS bucket
# bucket_name = "your-unique-bucket-name"
require "google/cloud/storage"
storage = Google::Cloud::Storage.new
bucket = storage.bucket bucket_name
bucket.storage_class = "COLDLINE"
puts "Default storage class for bucket #{bucket_name} has been set to #{bucket.storage_class}"
end
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器。