שימוש ב'ניהול גרסאות של אובייקטים'

סקירה כללית שימוש

המאמר הזה מתאר איך להפעיל, להשבית ולבדוק את הסטטוס של ניהול גרסאות של אובייקטים בקטגוריה. במאמר שימוש באובייקטים בגרסאות מוסבר איך להציג, לשחזר ולמחוק את האובייקטים הנשמרים במסגרת 'ניהול גרסאות של אובייקטים'.

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

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

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

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

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

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

הגדרת 'ניהול גרסאות של אובייקטים' בקטגוריה

כדי להפעיל או להשבית את התכונה 'ניהול גרסאות של אובייקטים', צריך להגדיר אותה בקטגוריה. אחרי שמפעילים את התכונה 'ניהול גרסאות של אובייקטים', בכל פעם שגרסה של אובייקט פעיל מוחלפת או נמחקת, הגרסה הזו הופכת לגרסה לא עדכנית.

המסוף

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

    כניסה לדף Buckets

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

  3. בוחרים בכרטיסייה Protection ליד החלק העליון של הדף.

    הסטטוס הנוכחי של גרסאות של אובייקטים נמצא בסעיף Object versioning.

  4. בסעיף Object versioning, לוחצים על הסטטוס הנוכחי כדי לשנות אותו.

    מופיעה תיבת הדו-שיח Object versioning.

    1. אם מפעילים את התכונה 'ניהול גרסאות של אובייקטים' ורוצים לצמצם את עלויות האחסון, מסמנים את התיבה Add recommended lifecycle rules to manage version costs.
  5. לוחצים על Confirm.

שורת הפקודה

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

gcloud storage buckets update gs://BUCKET_NAME FLAG

כאשר:

  • BUCKET_NAME הוא שם הקטגוריה הרלוונטית. לדוגמה, my-bucket.

  • FLAG היא --versioning כדי להפעיל את התכונה 'יצירת גרסאות של אובייקטים' או --no-versioning כדי להשבית אותה.

אם הפעולה בוצעה ללא שגיאות, התגובה תיראה דומה לדוגמה הבאה:

Updating gs://my-bucket/...
  Completed 1  

ספריות לקוח

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) {
  StatusOr<gcs::BucketMetadata> original =
      client.GetBucketMetadata(bucket_name);
  if (!original) throw std::move(original).status();

  StatusOr<gcs::BucketMetadata> patched = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetVersioning(
          gcs::BucketVersioning{true}),
      gcs::IfMetagenerationMatch(original->metageneration()));
  if (!patched) throw std::move(patched).status();

  if (patched->versioning().has_value()) {
    std::cout << "Object versioning for bucket " << bucket_name << " is "
              << (patched->versioning()->enabled ? "enabled" : "disabled")
              << "\n";
  } else {
    std::cout << "Object versioning for bucket " << bucket_name
              << " is disabled.\n";
  }
}

הדוגמה הבאה משביתה את התכונה 'ניהול גרסאות של אובייקטים' בקטגוריה:

namespace gcs = ::google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name) {
  StatusOr<gcs::BucketMetadata> original =
      client.GetBucketMetadata(bucket_name);
  if (!original) throw std::move(original).status();

  StatusOr<gcs::BucketMetadata> patched = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetVersioning(
          gcs::BucketVersioning{false}),
      gcs::IfMetagenerationMatch(original->metageneration()));
  if (!patched) throw std::move(patched).status();

  auto versioning =
      patched->versioning().value_or(gcs::BucketVersioning{false});
  std::cout << "Object versioning for bucket " << bucket_name << " is "
            << (versioning.enabled ? "enabled" : "disabled") << "\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 BucketEnableVersioningSample
{
	public Bucket BucketEnableVersioning(string bucketName = "your-bucket-name")
	{
		var storage = StorageClient.Create();
		var bucket = storage.GetBucket(bucketName);

		if (bucket.Versioning == null)
		{
			bucket.