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

הגדרה שימוש

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

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

מבוא

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

  • ‫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 מחליף את הגרסה הפעילה הקיימת ובמקביל שומר אותה כגרסה לא עדכנית חדשה. במקרה כזה, הקטגוריה מכילה כתוצאה מכך את האובייקט שהוחלף (שהוא עכשיו לא עדכני) ושני עותקים של האובייקט שהיה לא עדכני קודם לכן (עותק פעיל אחד ועותק אחד שעדיין לא עדכני). אתם תצברו חיובים על נפח האחסון של כל הגרסאות האלה. כדי למנוע חיובים מיותרים, אתם צריכים למחוק את הגרסה הלא עדכנית שהשתמשתם בה כדי ליצור את העותק הפעיל הנוכחי, או להגדיר ניהול מחזור חיים של אובייקטים כדי להסיר אובייקטים לא עדכניים כאשר הם עונים על התנאים שציינתם.

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