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

הגדרה שימוש

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

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

מבוא

הפעלת ניהול גרסאות של אובייקטים נעשית בקטגוריה. אחרי ההפעלה:

  • ‫Cloud Storage שומר גרסת אובייקט לא עדכנית בכל פעם שמחליפים או מוחקים גרסת אובייקט פעילה, כל עוד לא מציינים את מספר הדור של הגרסה הפעילה.

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

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

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

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

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

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

  • לא מתווספים לקטגוריה עוד גרסאות לא עדכניות חדשות של אובייקטים.

  • אין השפעה על גרסאות אובייקטים שכבר קיימות בקטגוריה.

לתשומת ליבכם

  • אין הגבלת ברירת מחדל על מספר גרסאות האובייקטים שיכול להיות לכם. כל גרסה לא עדכנית של אובייקט מחויבת באותו תעריף שבו חויבה כשהייתה פעילה.

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

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

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

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

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

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

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

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

מטא-נתונים של אובייקטים לא עדכניים

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

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

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

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

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

אתם מעלים תמונה חדשה

כשאתם מעלים את הקובץ cat.jpg ל-Cloud Storage בפעם הראשונה, הוא מקבל מספר generation ומספר metageneration. בדוגמה הזו, מספר הגנרציה הוא 1360887697105000. מכיוון שהאובייקט חדש, מספר ה-metageneration הוא 1.

cat.jpg מקבל מספרי generation ו-metageneration אף על פי שלא מופעל ניהול גרסאות של אובייקטים. אפשר להשיג את המספרים האלה באמצעות צפייה במטא-נתונים של האובייקט.

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

בשלב הזה אתם מחליטים להפעיל ניהול גרסאות של אובייקטים בקטגוריה שלכם. הפעולה הזו לא משפיעה על מספרי generation או metageneration של cat.jpg.

אתם משנים את המטא-נתונים של התמונה

אתם מעדכנים את המטא-נתונים של cat.jpg על ידי הוספת מטא-נתונים מותאמים אישית: color:black. עדכון המטא-נתונים גורם לעלייה בערך metageneration של cat.jpg, במקרה הזה, מ-1 ל-2. עם זאת, האובייקט עצמו נשאר ללא שינוי, ולכן Cloud Storage ממשיך לאחסן רק גרסה אחת של cat.jpg, ומספר ה-generation של הגרסה ממשיך להיות 1360887697105000.

אתם מעלים גרסה חדשה של התמונה

אתם מעלים גרסה חדשה של cat.jpg לקטגוריה שלכם ב-Cloud Storage. כשאתם עושים זאת, ניהול גרסאות של אובייקטים מעביר את האובייקט cat.jpg הקיים למצב לא עדכני. הגרסה הלא עדכנית נשארת עם אותו סוג אחסון ועם אותם מטא-נתונים שהיו לה בעבר. הגרסה הלא עדכנית תופיע רק אם תשלחו בקשה להציג את רשימת הגרסאות: היא לא מופיעה בפקודות רגילות להצגת רשימה. הגרסה הלא-עדכנית נקראת עכשיו: cat.jpg#1360887697105000.

בינתיים, הקובץ cat.jpg החדש שהועלה הופך לגרסה הפעילה של האובייקט. הקובץ cat.jpg החדש מקבל מספר generation משלו, בדוגמה הזו 1360887759327000. הוא גם מקבל מטא-נתונים משלו ומספר metageneration של 1, כלומר הוא לא מכיל את המטא-נתונים color:black, אלא אם תציינו זאת. כשאתם ניגשים ל-cat.jpg, או משנים אותו, זו הגרסה שבה נעשה שימוש. אפשר גם להפנות לגרסה הזו של cat.jpg באמצעות מספר ה-generation שלה. לדוגמה, כשאתם משתמשים ב-Google Cloud CLI, תפנו לגרסה הזו באמצעות cat.jpg#1360887759327000.

אתם מוחקים גרסה פעילה של התמונה

אתם מוחקים עכשיו את cat.jpg. בעקבות זאת, הגרסה שהייתה עם מספר הגנרציה 1360887759327000 הופכת ללא עדכנית. הקטגוריה שלכם מכילה עכשיו שתי גרסאות לא עדכניות של cat.jpg ואין בה גרסה פעילה. עדיין אפשר להפנות לאחת מהגרסאות הלא עדכניות באמצעות מספר ה-generation שלה, אבל אם תנסו לגשת אל cat.jpg בלי מספר generation, הפעולה תיכשל.

באופן דומה, בהצגת רשימה רגילה של אובייקטים בקטגוריה, cat.jpg לא יופיע בתור אחד האובייקטים בקטגוריה. למידע נוסף, ראו הצגת רשימת גרסאות לא עדכניות של אובייקטים.

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

אתם משביתים ניהול גרסאות של אובייקטים, כך שאובייקטים לא הופכים יותר ללא עדכניים. גרסאות לא עדכניות קיימות של האובייקטים יישארו ב-Cloud Storage. אף על פי שניהול גרסאות של אובייקטים מושבת, cat.jpg#1360887697105000 ו-cat.jpg#1360887759327000 יישארו מאוחסנים בקטגוריה עד שתמחקו אותם.

אתם משחזרים אחת מהגרסאות הלא עדכניות

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

אתם מוחקים אחת מהגרסאות הלא עדכניות

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

כשמוחקים גרסה לא עדכנית, cat.jpg#1360887697105000, היא נמחקת זמנית. האובייקט שנמחק עם יכולת שחזור נשמר למשך תקופת השמירה של המחיקה עם יכולת שחזור שצוינה במדיניות המחיקה עם יכולת שחזור של הקטגוריה. אחרי שתקופת השמירה מסתיימת, Cloud Storage מוחק לצמיתות את הגרסה של האובייקט שנמחקה זמנית.

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

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

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

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

סטטוס ניהול גרסאות של אובייקטים סטטוס מחיקה עם אפשרות שחזור פעולה תוצאה
מושבת מושבת
מוחקים את dog.png. dog.png נמחק לתמיד.
מוחקים גרסה לא עדכנית של dog.png על ידי ציון מספר הגנרציה שלה.1 הגרסה הלא עדכנית נמחקת לתמיד.
מחליפים את dog.png בגרסה חדשה. הגרסה החדשה מחליפה את הגרסה הפעילה ומקבלת מספר גנרציה חדש. הגרסה הפעילה הישנה נמחקת לתמיד.
מעתיקים גרסה לא עדכנית של dog.png מעל הגרסה הפעילה.1 עותק של הגרסה הלא עדכנית מחליף את הגרסה הפעילה ומקבל מספר גנרציה חדש. הגרסה הפעילה הישנה נמחקת לתמיד.
מושבת מופעל
מוחקים את dog.png. dog.png נמחק באופן זמני.
מוחקים גרסה לא עדכנית של dog.png על ידי ציון מספר הגנרציה שלה.1 הגרסה הלא עדכנית נמחקת זמנית.
מחליפים את dog.png בגרסה חדשה. הגרסה החדשה מחליפה את הגרסה הפעילה ומקבלת מספר גנרציה חדש. הגרסה הפעילה הישנה נמחקת זמנית.
מעתיקים גרסה לא עדכנית של dog.png מעל הגרסה הפעילה.1 עותק של הגרסה הלא עדכנית מחליף את הגרסה הפעילה ומקבל מספר גנרציה חדש. הגרסה הפעילה הישנה נמחקת זמנית.
מופעל מושבת
מוחקים את הגרסה הפעילה של dog.png בלי לציין את מספר הגנרציה שלה. הגרסה הפעילה הופכת לגרסה לא עדכנית ונשארת עם אותו מספר גנרציה.
מוחקים את הגרסה הפעילה של dog.png על ידי ציון מספר הגנרציה שלה. הגרסה הפעילה נמחקת לתמיד.
מוחקים גרסה לא עדכנית של dog.png על ידי ציון מספר הגנרציה שלה. הגרסה הלא עדכנית נמחקת לתמיד.
מחליפים את dog.png בגרסה חדשה. הגרסה החדשה מחליפה את הגרסה הפעילה ומקבלת מספר גנרציה חדש. הגרסה הפעילה הישנה הופכת לגרסה לא עדכנית ונשארת עם אותו מספר גנרציה.
מעתיקים גרסה לא עדכנית של dog.png מעל הגרסה הפעילה. עותק של הגרסה הלא עדכנית מחליף את הגרסה הפעילה ומקבל מספר גנרציה חדש. הגרסה הפעילה הישנה הופכת לגרסה לא עדכנית ונשארת עם אותו מספר גנרציה.
מופעל מופעל
מוחקים את הגרסה הפעילה של dog.png בלי לציין את מספר הגנרציה שלה. הגרסה הפעילה הופכת לגרסה לא עדכנית ונשארת עם אותו מספר גנרציה.
מוחקים את הגרסה הפעילה של dog.png על ידי ציון מספר הגנרציה שלה. הגרסה הפעילה נמחקת זמנית.
מוחקים גרסה לא עדכנית של dog.png על ידי ציון מספר הגנרציה שלה. הגרסה הלא עדכנית נמחקת זמנית.
מחליפים את dog.png בגרסה חדשה. הגרסה החדשה מחליפה את הגרסה הפעילה ומקבלת מספר גנרציה חדש. הגרסה הפעילה הישנה הופכת לגרסה לא עדכנית ונשארת עם אותו מספר גנרציה.
מעתיקים גרסה לא עדכנית של dog.png מעל הגרסה הפעילה. עותק של הגרסה הלא עדכנית מחליף את הגרסה הפעילה ומקבל מספר גנרציה חדש. הגרסה הפעילה הישנה הופכת לגרסה לא עדכנית ונשארת עם אותו מספר גנרציה.

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

התנהגות השחזור

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

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

המאמרים הבאים