שימוש באובייקטים שנמחקו זמנית

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

למידע נוסף, קראו את הסקירה הכללית על מחיקה זמנית.

לפני שמתחילים

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

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

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

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

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

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

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

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

המסוף

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

    כניסה לדף Buckets

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

  3. ברשימה Show, בוחרים באפשרות Soft-deleted objects only. מוצגת רשימה של אובייקטים שנמחקו באופן זמני.

שורת הפקודה

כדי להציג רשימה של כל האובייקטים שנמחקו באופן זמני בקטגוריה, משתמשים בפקודה gcloud storage ls עם הדגל --soft-deleted והתו הכללי לחיפוש **. שימו לב: יכול להיות שתצטרכו להקיף את הביטוי של התו הכללי במירכאות.

  gcloud storage ls gs://BUCKET_NAME/** --soft-deleted

מחליפים את מה שכתוב בשדות הבאים:

  • ‫BUCKET_NAME: שם הקטגוריה. לדוגמה, my-bucket.

ממשקי API בארכיטקטורת REST

‫API בפורמט JSON

  1. להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים בפקודה 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.

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

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

המסוף

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

    כניסה לדף Buckets

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

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

  4. לוחצים על הכרטיסייה היסטוריית גרסאות.

  5. ברשימה Show, בוחרים באפשרות Soft-deleted objects only. תוצג רשימה של כל הגרסאות של האובייקט שנמחקו באופן זמני.

שורת הפקודה

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

  gcloud storage ls gs://BUCKET_NAME/OBJECT_NAME --soft-deleted

מחליפים את מה שכתוב בשדות הבאים:

  • ‫BUCKET_NAME: שם הקטגוריה. לדוגמה, my-bucket.
  • ‫OBJECT_NAME: שם האובייקט שרוצים לראות את כל הגרסאות שלו.

ממשקי API בארכיטקטורת REST

‫API בפורמט JSON

  1. להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים בפקודה 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: שם האובייקט שרוצים לראות את כל הגרסאות שלו.

שחזור אובייקט שנמחק באופן זמני

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

כדי לשחזר אובייקט שנמחק באופן זמני:

המסוף

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

    כניסה לדף Buckets

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

  3. ברשימה Show, בוחרים באפשרות Soft-deleted objects only.

  4. עוברים אל האובייקט, שאולי יהיה ממוקם בתיקייה.

  5. לוחצים על האובייקט שנמחק באופן זמני. הדף Object details נפתח.

  6. ברשימה Show, בוחרים באפשרות Soft-deleted objects only. תוצג רשימה של כל הגרסאות של האובייקט שנמחקו באופן זמני.

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

  8. לוחצים על 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

  1. להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת Authorization.

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

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

המסוף

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

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, מוצאים את הקטגוריה שמכילה את האובייקטים שרוצים לשחזר.

  3. לוחצים על התפריט Bucket overflow () שמשויך לקטגוריה ובוחרים באפשרות Create restore job.

    החלונית Create a restore job נפתחת.

  4. בקטע Choose which soft-deleted objects to restore, בוחרים את טווח התאריכים שבו נמחקו האובייקטים שרוצים לשחזר.

  5. אופציונלי: כדי לשחזר רק את האובייקטים שתואמים לתבנית glob, בוחרים באפשרות Filter by glob pattern ומזינים תבנית glob.

  6. אופציונלי: בקטע Restore options, מציינים התנהגויות שחזור נוספות.

  7. לוחצים על יצירה.

כדי לעקוב אחרי ההתקדמות של פעולת השחזור בכמות גדולה, לוחצים על הלחצן 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

  1. להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת Authorization.

  2. משתמשים ב-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"
  }
}

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