שינוי סוג האחסון (storage class) שמוגדר כברירת מחדל בקטגוריה

בדף הזה מוסבר איך לשנות את סוג האחסון (storage class) שמוגדר כברירת מחדל בקטגוריה. אם לא מציינים את סוג האחסון של האובייקט, כשמעלים אותו לקטגוריה הוא יקבל את סוג האחסון שמוגדר כברירת המחדל בקטגוריה. ראו מידע נוסף על סוגי אחסון.

התפקידים הנדרשים

כדי לקבל את ההרשאות הנדרשות לשינוי סוג האחסון של קטגוריה, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM 'אדמין לניהול אחסון' (roles/storage.admin) בקטגוריה.

התפקיד המוגדר מראש הזה מכיל את ההרשאות שנדרשות לשינוי סוג האחסון של קטגוריה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

  • storage.buckets.get
    • ההרשאה הזו נדרשת רק אם אתם מתכננים להשתמש בGoogle Cloud מסוף כדי לבצע את ההוראות שבדף הזה.
  • storage.buckets.list
    • ההרשאה הזו נדרשת רק אם אתם מתכננים להשתמש בGoogle Cloud מסוף כדי לבצע את ההוראות שבדף הזה.
  • storage.buckets.update

יכול להיות שתוכלו לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית.

במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות.

שינוי סוג האחסון (storage class) שמוגדר כברירת מחדל בקטגוריה

המסוף

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שרוצים לשנות את סוג האחסון שלה.

  3. בדף Bucket details, לוחצים על הכרטיסייה Configuration.

  4. לוחצים על סמל העריכה () לצד סוג האחסון (storage class) שמוגדר כברירת מחדל.

  5. בחלון של שכבת-העל, בוחרים את סוג האחסון החדש שתרצו להגדיר כברירת מחדל בקטגוריה.

  6. לוחצים על Save.

במאמר פתרון בעיות מוסבר איך מקבלים מידע מפורט על שגיאות בנושא פעולות ב-Cloud Storage שנכשלו ב Google Cloud מסוף.

שורת הפקודה

משתמשים בפקודה gcloud storage buckets update עם הדגל --default-storage-class:

gcloud storage buckets update gs://BUCKET_NAME --default-storage-class=STORAGE_CLASS

כאשר:

  • BUCKET_NAME הוא שם הקטגוריה הרלוונטית. לדוגמה, my-bucket.
  • STORAGE_CLASS הוא סוג האחסון החדש שאתם רוצים לקטגוריה. לדוגמה, nearline.

התגובה אמורה להיות דומה לדוגמה הבאה:

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

ספריות לקוח

C++

למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

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.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.


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.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

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: %w", 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: %w", 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.

כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

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.