בדף הזה מוסבר איך להציג רשימה של אובייקטים שנמחקו זמנית, לגשת אליהם ולשחזר אותם.
לפני שמתחילים
כדי לקבל את ההרשאות שדרושות להצגת רשימה של אובייקטים שנמחקו זמנית, לגישה אליהם ולשחזור שלהם, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Storage Admin (roles/storage.admin) בקטגוריה, בתיקייה המנוהלת או בפרויקט.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות כדי להציג רשימה של אובייקטים שנמחקו זמנית, לגשת אליהם ולשחזר אותם. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להציג, לגשת ולשחזר אובייקטים שנמחקו זמנית, נדרשות ההרשאות הבאות:
-
storage.buckets.get(ההרשאה הזו נדרשת רק לשימוש במסוף Google Cloud כדי לבצע את ההוראות שבדף הזה) -
storage.buckets.list(ההרשאה הזו נדרשת רק לשימוש במסוף Google Cloud כדי לבצע את ההוראות שבדף הזה) -
storage.objects.get(ההרשאה הזו נדרשת רק לשימוש במסוף Google Cloud כדי לבצע את ההוראות שבדף הזה) -
storage.objects.list -
storage.objects.restore -
storage.objects.create -
storage.objects.delete(ההרשאה הזו נדרשת רק לשחזור אובייקטים באופן שגורם להחלפה של אובייקטים קיימים) -
storage.buckets.restore(ההרשאה הזו נדרשת רק לשחזור בכמות גדולה של אובייקטים שנמחקו זמנית)
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות. במאמר ניהול הגישה לפרויקטים מוסבר איך להקצות תפקידים לפרויקטים.
כדי לנהל פעולה ממושכת שמופעלת משיטות של מחיקה עם יכולת שחזור, יכול להיות שתצטרכו תפקידים והרשאות נוספים. מידע נוסף זמין במאמר בנושא תפקידים שנדרשים לפעולות ממושכות.
הצגת רשימה של כל האובייקטים שנמחקו זמנית בקטגוריה
כדי לראות רשימה של כל האובייקטים שנמחקו זמנית בקטגוריה:
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שרוצים לראות את האובייקטים שנמחקו זמנית. הדף Bucket details נפתח והכרטיסייה Objects מסומנת.
ברשימה הצגה, בוחרים באפשרות רק אובייקטים שנמחקו זמנית. תוצג רשימה של אובייקטים שנמחקו זמנית.
שורת הפקודה
כדי להציג רשימה של כל האובייקטים שנמחקו זמנית בקטגוריה, משתמשים בפקודה gcloud storage ls עם הדגל --soft-deleted והתו הכללי **. הערה: יכול להיות שתצטרכו להקיף את הביטוי עם התו הכללי במירכאות.
gcloud storage ls gs://BUCKET_NAME/** --soft-deleted
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: שם הקטגוריה. לדוגמה,my-bucket.
ממשקי API ל-REST
API ל-JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON עם בקשה לקריאת רשימה של אובייקטים באמצעות פרמטר השאילתה?softDeleted:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?softDeleted=true"
כאשר
BUCKET_NAMEהוא השם של הקטגוריה הרלוונטית. לדוגמה,my-bucket.
הצגת כל הגרסאות של אובייקט שנמחקו זמנית
כדי לראות את כל הגרסאות של אובייקט מסוים בקטגוריה שנמחקו זמנית, פועלים לפי ההוראות הבאות:
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקט שרוצים לראות גרסאות שנמחקו זמנית שלו. הדף Bucket details נפתח והכרטיסייה Objects מסומנת.
לוחצים על האובייקט שרוצים לראות את כל הגרסאות שלו שנמחקו זמנית. יוצג הדף Object details.
לוחצים על הכרטיסייה היסטוריית גרסאות.
ברשימה הצגה, בוחרים באפשרות רק אובייקטים שנמחקו זמנית. תוצג רשימה של כל הגרסאות של האובייקט שנמחקו זמנית.
שורת הפקודה
כדי להציג רשימה של כל הגרסאות של אובייקט בקטגוריה שנמחקו זמנית, משתמשים בפקודה gcloud storage ls:
gcloud storage ls gs://BUCKET_NAME/OBJECT_NAME --soft-deleted
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: שם הקטגוריה. לדוגמה,my-bucket. -
OBJECT_NAME: השם של האובייקט שרוצים לראות את כל הגרסאות שלו.
ממשקי API ל-REST
API ל-JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON עם בקשה לקריאת רשימה של אובייקטים באמצעות פרמטר השאילתה?softDeleted:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?matchGlob=OBJECT_NAME&softDeleted=true"
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: שם הקטגוריה. לדוגמה,my-bucket. -
OBJECT_NAME: השם של האובייקט שרוצים לראות את כל הגרסאות שלו.
-
שחזור אובייקט שנמחק באופן זמני
אפשר לשחזר גרסה ספציפית של אובייקט שנמחק זמנית בדלי. שימו לב: אי אפשר לשחזר אובייקטים מקטגוריה שנמחקה זמנית. כדי לשחזר אובייקטים בקטגוריה שנמחקה זמנית, קודם צריך לשחזר את הקטגוריה שנמחקה זמנית.
כדי לשחזר אובייקט שנמחק זמנית:
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקטים שנמחקו זמנית ורוצים לשחזר. הדף Bucket details נפתח והכרטיסייה Objects מסומנת.
ברשימה הצגה, בוחרים באפשרות רק אובייקטים שנמחקו זמנית.
עוברים אל האובייקט, שאולי יהיה ממוקם בתיקייה.
לוחצים על האובייקט שנמחק זמנית. יוצג הדף Object details.
ברשימה הצגה, בוחרים באפשרות רק אובייקטים שנמחקו זמנית. תוצג רשימה של כל הגרסאות של האובייקט שנמחקו זמנית.
כדי לשחזר גרסה ספציפית של אובייקט שנמחקה זמנית, לוחצים על שחזור לצד גרסת האובייקט. החלונית של גרסת האובייקט תיפתח.
לוחצים על Confirm.
שורת הפקודה
כדי לשחזר גרסה של אובייקט שנמחקה זמנית, משתמשים בפקודה gcloud storage restore:
gcloud storage restore gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: שם הקטגוריה. לדוגמה,my-bucket. -
OBJECT_NAME: השם של האובייקט שרוצים לראות את כל הגרסאות שלו. -
GENERATION_NUMBER: מספר דור של האובייקט שנמחק זמנית ורוצים לשחזר. לדוגמה,1560468815691234. אם לא מציינים את מספר הדור, הגרסה העדכנית משוחזרת.
אפשרויות נוספות לשחזור של כמה אובייקטים בבת אחת, כולל שחזור כל הגרסאות של אובייקט באמצעות הדגל all-versions, מפורטות במאמר gcloud storage restore.
ממשקי API ל-REST
API ל-JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של אובייקטPOST:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/restore?generation=GENERATION_NUMBER"
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה הרלוונטית. לדוגמה,my-bucket. -
OBJECT_NAMEהוא השם של האובייקט שנמחק זמנית ורוצים לשחזר. לדוגמה,cat.jpeg. -
GENERATION_NUMBERהוא מספר הדור של האובייקט שנמחק זמנית שרוצים לשחזר. לדוגמה,1560468815691234.
-
שחזור של כמות גדולה של אובייקטים שנמחקו זמנית בקטגוריה
אם רוצים לשחזר מספר גדול של אובייקטים, או אם לא יודעים אילו אובייקטים ספציפיים רוצים לשחזר, אפשר להשתמש בפעולת שחזור בכמות גדולה. הערה: פעולות שחזור בכמות גדולה מתבצעות באופן אסינכרוני, ובמקרים מסוימים יכולות להתחיל אחרי שעה או יותר.
פעולת שחזור בכמות גדולה מתחילה פעולה ממושכת בדלי. אתם יכולים להשתמש ב-Google Cloud CLI כדי לקבל ולרשום פעולות ממושכות, וכך לראות את הפרטים והסטטוס של פעולת השחזור בכמות גדולה בזמן שהיא מתבצעת.
כדי לשחזר אובייקטים שנמחקו זמנית מקטגוריה בכמות גדולה:
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, מוצאים את הקטגוריה שמכילה את האובייקטים שרוצים לשחזר.
לוחצים על התפריט Bucket overflow (more_vert) שמשויך לקטגגוריה ובוחרים באפשרות Create restore job.
החלונית Create a restore job תיפתח.
בקטע Choose which soft-deleted objects to restore (בחירת אובייקטים שנמחקו זמנית לשחזור), בוחרים את טווח הזמן שממנו רוצים לשחזר אובייקטים.
אופציונלי: כדי לשחזר רק את האובייקטים שתואמים לתבנית glob, בוחרים באפשרות סינון לפי תבנית glob ומזינים תבנית glob.
אופציונלי: מציינים התנהגויות שחזור נוספות בקטע אפשרויות שחזור.
לוחצים על יצירה.
כדי לעקוב אחרי ההתקדמות של פעולת השחזור של מספר פריטים בו זמנית, לוחצים על הלחצן התראות (notifications) בכותרת של מסוף Google Cloud .
שורת הפקודה
כדי להשתמש בפעולת השחזור בכמות גדולה כדי לשחזר את כל האובייקטים בקטגוריה, משתמשים בפקודה gcloud storage restore.
לדוגמה, הפקודה הבאה מבצעת פעולת שחזור בכמות גדולה כדי לשחזר באופן אסינכרוני את כל האובייקטים בקטגוריה שנמחקו במהלך תקופה מסוימת:
gcloud storage restore gs://BUCKET_NAME/** \
--async --deleted-after-time=DELETED_AFTER_TIME \
--deleted-before-time=DELETED_BEFORE_TIME
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: שם הקטגוריה. לדוגמה,my-bucket. -
DELETED_AFTER_TIME: ארגומנט אופציונלי שמשמש לציון התאריך שאחריו האובייקטים ישוחזרו. לדוגמה,2022-12-01. -
DELETED_BEFORE_TIME: ארגומנט אופציונלי שמשמש לציון התאריך שלפניו האובייקטים ישוחזרו. לדוגמה,2022-12-21.
אפשרויות נוספות לסינון האובייקטים שרוצים לשחזר בכמות גדולה מפורטות במאמר בנושא gcloud storage restore.
אם הפעולה בוצעה ללא שגיאות, הפקודה תחזיר את המזהה של הפעולה הממושכת שמשויכת לפעולת השחזור בכמות גדולה. אפשר לקבל את הפרטים של הפעולה הממושכת או לבטל אותה כדי להפסיק את פעולת השחזור בכמות גדולה לפני שהיא מסתיימת. מידע נוסף זמין במאמר בנושא שימוש בפעולות ממושכות.
ממשקי API ל-REST
API ל-JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של אובייקטPOST:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/bulkRestore"
כאשר
BUCKET_NAMEהוא השם של הקטגוריה הרלוונטית. לדוגמה,my-bucket.
אם הפעולה בוצעה ללא שגיאות, הפקודה תחזיר את המזהה של הפעולה הממושכת שמשויכת לפעולת השחזור בכמות גדולה. אפשר לקבל את הפרטים של הפעולה הממושכת או לבטל אותה כדי להפסיק את פעולת השחזור בכמות גדולה לפני שהיא מסתיימת. מידע נוסף זמין במאמר בנושא שימוש בפעולות ממושכות.
שימוש בפעולות ממושכות לשחזור בכמות גדולה
פעולת השחזור של אובייקטים בכמות גדולה מפעילה פעולה ממושכת. אפשר לקבל ולרשום פעולות ממושכות כדי לראות את הפרטים והסטטוס של פעולת שחזור בכמות גדולה, או למחוק פעולה ממושכת כדי לבטל פעולת שחזור בכמות גדולה בזמן שהיא מתבצעת.
הוראות לשימוש בפעולות ממושכות שמופעלות מפעולות ב-Cloud Storage, כמו פעולת השחזור בכמות גדולה, מופיעות במאמר שימוש בפעולות ממושכות.
בדוגמה הבאה מוצגת פעולה ממושכת שמוחזרת מפעולת שחזור בכמות גדולה:
done: false { "kind": "storage@operation", "name": "projects/_/buckets/my-bucket/operations/CiQyODRlMTY0My0wNGExLTQ3MWItOTE2Zi1hZmQ0ZmM4ZDc4MjQQAg", "metadata": { "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsMetadata", "commonMetadata": { "type": "bulk-restore-objects", "createTime": "2023-10-20T21:08:11.289Z", "updateTime": "2023-10-20T21:18:37.583Z", "endTime": "2023-10-20T21:18:37.583Z", "requestedCancellation": false, "progressPercent": -1, }, "allow_overwrite": false, "matchGlobs": ["*"], "succeededCount": "0", "failedCount": "0", "skippedCount": "0", }, "done": true, "response": { "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsResponse" } }