בדף הזה מוסבר איך ליצור, להציג, לרשום, לבטל ולמחוק משימות של פעולות אצווה של אחסון. בנוסף, מוסבר איך להשתמש ביומני הביקורת של Cloud עם משימות של פעולות אצווה של אחסון.
לפני שמתחילים
כדי ליצור ולנהל משימות של פעולות אצווה באחסון, מבצעים את השלבים בקטעים הבאים.
הגדרת Storage Intelligence
כדי ליצור ולנהל משימות של פעולות אצווה ב-Storage, צריך להגדיר את Storage Intelligence בקטגוריה שבה רוצים להריץ את המשימה.
הפעלת API של פעולות רבות על פריטי אחסון
מפעילים את API של פעולות רבות על פריטי אחסון.
gcloud services enable storagebatchoperations.googleapis.com
יצירת קובץ manifest
אם רוצים להשתמש במניפסט בשביל בחירת אובייקטים, צריך ליצור קובץ מניפסט. שימוש במניפסט הוא אחת הדרכים לבחור אובייקטים לעיבוד במשימה של פעולות בכמות גדולה ב-Storage.
יצירת משימה של פעולות רבות על פריטי אחסון
בקטע הזה מוסבר איך ליצור משימת פעולות אצווה באחסון.
כדי לקבל את ההרשאות שנדרשות ליצירת משימה של פעולות באצווה באחסון, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקטים שרוצים לבצע עליהם פעולות באצווה.
הדף Bucket details נפתח עם הכרטיסייה Objects שנבחרה.
- לוחצים על יצירת פעולות בכמות גדולה.
- בחלונית Select operation, בוחרים את סוג הפעולה:
- ניהול השהיות של אובייקטים: בוחרים באפשרות השהיה זמנית או השהיה מבוססת-אירועים. מידע נוסף זמין במאמר בנושא השהיות אובייקטים.
- עדכון מטא-נתונים של אובייקט: כדי להוסיף מטא-נתונים של אובייקט, מבצעים את הפעולות הבאות:
- כדי להוסיף מטא-נתונים מותאמים אישית, מבצעים את השלבים הבאים:
- בשדה Key (מפתח), מזינים שם של מפתח.
- בשדה ערך, מזינים ערך למפתח.
- אופציונלי: לוחצים על + הוספת פריט כדי להוסיף עוד צמדי מפתח/ערך.
- כדי לעדכן מטא-נתונים עם מַפְתח קבוע, מבצעים את השלבים הבאים:
- כדי להרחיב את הקטע עדכון מטא-נתונים עם מַפְתח קבוע, לוחצים על החץ להרחבה .
- ברשימה Select one or more metadata to update, בוחרים את פריטי המטא-נתונים שרוצים לערוך.
- כדי להוסיף מטא-נתונים מותאמים אישית, מבצעים את השלבים הבאים:
- עדכון או החלפה של מפתח ההצפנה: כדי להשתמש במפתח ההצפנה של האובייקטים או לעדכן אותו, מבצעים את הפעולות הבאות:
- ברשימה Select a Cloud KMS key, בוחרים מפתח הצפנה בניהול הלקוח (CMEK).
- אופציונלי: בוחרים באפשרות החלפת פרויקט כדי לבחור מפתח מפרויקט אחר, או באפשרות הזנת מפתח באופן ידני כדי למלא את הפרטים.
- מחיקת אובייקטים: כדי למחוק אובייקטים, מבצעים את הפעולות הבאות:
- בדיקה אם התכונה 'ניהול גרסאות של אובייקטים' מופעלת
אם התכונה 'ניהול גרסאות של אובייקטים' מופעלת, בוחרים באחת מאפשרויות המחיקה הבאות:
- בוחרים באפשרות מחיקת כל הגרסאות של האובייקטים כדי להסיר גם את הגרסאות הפעילות וגם את הגרסאות הלא עדכניות.
- בוחרים באפשרות מחיקה סופית של גרסאות פעילות כדי להסיר רק את הגרסה הפעילה.
אם ניהול גרסאות של אובייקטים לא מופעל, כל האובייקטים שנבחרו למחיקה נמחקים באופן סופי.
- לוחצים על הבא.
- בחלונית Name operation & specify objects (מתן שם לפעולה וציון אובייקטים), מבצעים את הפעולות הבאות:
- בשדה שם, מזינים שם.
- אופציונלי: בשדה תיאור, מזינים תיאור.
- בקטע Specify objects (ציון אובייקטים), מגדירים קריטריון לעיבוד אובייקטים מהקטגוריה. בוחרים אחת מהאפשרויות הבאות:
- בחירת כל האובייקטים: כוללת את כל האובייקטים בדלי.
- בחירת אובייקטים באמצעות מסננים לפי קידומת: כדי להגדיר את רשימת האובייקטים באמצעות מסננים לפי קידומת, מבצעים את הפעולות הבאות:
- בשדה Enter Prefixes of the objects to be included (הזנת קידומות של האובייקטים שייכללו), מזינים קידומת.
- אופציונלי: לוחצים על + הוספת קידומת כדי לציין קידומות נוספות.
- העלאת רשימות של אובייקטים באמצעות קובצי CSV של מניפסט: כדי להשתמש בקובץ מניפסט לבחירת אובייקטים, צריך לבצע את הפעולות הבאות:
- מעלים את קובץ ה-CSV של המניפסט לדלי. הקובץ הזה צריך להכיל כותרות של שם הקטגוריה, מפתח האובייקט ומספר דור.
- ברשימה Select manifest file mode, בוחרים באחת מהאפשרויות הבאות:
- אם בוחרים באפשרות בחירת קובץ מניפסט מ-Cloud Storage, לוחצים על Browse בשדה בחירת קובץ מניפסט מ-Cloud Storage. בתיבת הדו-שיח בחירת אובייקט שמופיעה, מנווטים לקובץ ה-CSV של המניפסט ולוחצים על בחירה.
- אם בוחרים באפשרות Select multiple manifest files using wildcard (בחירת כמה קובצי מניפסט באמצעות תוו כללי), מזינים את נתיב הקובץ בשדה Enter manifest file location using wildcard (הזנת מיקום קובץ המניפסט באמצעות תוו כללי). לדוגמה,
bucket-name/folder/manifest_*.
- לוחצים על יצירה.
שורת הפקודה
כדי להגדיר את רשימת האובייקטים לעבודת העיבוד באצווה, אפשר לבחור אחת מהגדרות המקור הבאות:
- פרויקט כמקור: טירגוט אובייקטים בפרויקט באמצעות הגדרת מערך נתונים של Storage Insights. במקום לציין קטגוריות או קידומות ספציפיות, אפשר לציין פרמטרים מתקדמים של מסננים, כמו
--insights-dataset-config,--target-project,--bucket-filtersו---object-filters. פרטים נוספים זמינים במאמר יצירת משימה באמצעות מסננים מתקדמים. - קטגוריות כמקור: טירגוט אובייקטים בקטגוריות ספציפיות. צריך לציין אחד מהדגלים הבאים:
-
--bucketאו--bucket-listכדי להגדיר את דלי היעד. - קובץ CSV של מניפסט (
--manifest-location) או קידומות של אובייקטים (--included-object-prefixes) כדי להגדיר את אובייקטי היעד.
-
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
משתמשים בגרסה 516.0.0 ואילך של Google Cloud CLI.
כדי להגדיר את פרויקט ברירת המחדל, מריצים את הפקודה
gcloud config set project:gcloud config set project PROJECT_ID
כאשר PROJECT_ID הוא מזהה הפרויקט.
אופציונלי: מריצים עבודת הרצת בדיקה. לפני שמריצים עבודה, מומלץ להריץ אותה במצב בדיקה כדי לוודא שהקריטריונים לבחירת האובייקטים נכונים ולבדוק אם יש שגיאות. ההרצה היבשה לא משנה אף אובייקט.
בסביבת הפיתוח, מריצים את הפקודה
gcloud storage batch-operations jobs createעם הדגל--dry-run:gcloud storage batch-operations jobs create DRY_RUN_JOB_NAME \ {--bucket=BUCKET | --bucket-list=BUCKET_LIST} OBJECT_SELECTION_FLAG JOB_TYPE_FLAG \ --dry-runכאשר:
-
DRY_RUN_JOB_NAMEהוא השם של משימת ההרצה היבשה של פעולות רבות על פריטי אחסון.
שאר הפרמטרים זהים לאלה של המשרה בפועל. מידע נוסף זמין במאמר תיאורים של פרמטרים.
כדי לראות את התוצאות של הרצת בדיקה, אפשר לעיין במאמר בנושא קבלת פרטים על משימות של פעולות באצווה באחסון.
-
אחרי הרצת בדיקה מוצלחת, מריצים את הפקודה
gcloud storage batch-operations jobs create.gcloud storage batch-operations jobs create JOB_NAME \ {--bucket=BUCKET | --bucket-list=BUCKET_LIST} OBJECT_SELECTION_FLAG JOB_TYPE_FLAGכאשר הפרמטרים הם:
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.
--bucket:BUCKETהוא שם הקטגוריה שמכילה את האובייקטים שרוצים לעבד.
--bucket-list:BUCKET_LISTהיא רשימה מופרדת בפסיקים של שם אחד או יותר של קטגוריות שמכילות את האובייקטים שרוצים לעבד. אפשר לציין עד 1,000 קטגוריות מכל פרויקט, כל עוד כל קטגוריה רשומה לתוכנית של ניהול נתונים חכם.
OBJECT_SELECTION_FLAGהוא אחד מהדגלים הבאים שצריך לציין:
--included-object-prefixes: מציינים תחיליות של אובייקטים. לדוגמה:- כדי להתאים קידומת אחת, משתמשים ב:
--included-object-prefixes='prefix1'. - כדי להתאים לכמה קידומות, משתמשים ברשימת קידומות שמופרדת בפסיקים:
--included-object-prefixes='prefix1,prefix2'. - כדי לכלול את כל האובייקטים, משתמשים בתוספת לשם המאפיין ריקה:
--included-object-prefixes=''.
- כדי להתאים קידומת אחת, משתמשים ב:
--manifest-location: ציון המיקום של המניפסט. לדוגמה,gs://bucket_name/path/object_name.csv.
JOB_TYPE_FLAGהוא אחד מהדגלים הבאים שצריך לציין, בהתאם לסוג העבודה.
--delete-object: מחיקת אובייקט אחד או יותר.אם ניהול גרסאות אובייקטים מופעל בקטגוריה, אובייקטים עדכניים עוברים למצב לא עדכני, ואובייקטים לא עדכניים נדלגים.
אם ניהול הגרסאות של האובייקטים מושבת בקטגוריה, פעולת המחיקה מוחקת את האובייקטים באופן סופי ומדלגת על אובייקטים לא עדכניים.
--enable-permanent-object-deletion: מחיקה סופית של אובייקטים. משתמשים בדגל הזה יחד עם הדגל--delete-objectכדי למחוק לצמיתות אובייקטים פעילים ולא עדכניים בקטגוריה, ללא קשר להגדרת ניהול הגרסאות של האובייקטים בקטגוריה.
--rewrite-object: עדכון מפתחות ההצפנה בניהול הלקוח של אובייקט אחד או יותר. אפשר להשתמש בדגל הזה גם כדי לשנות את סוג האחסון (storage class) של האובייקט על ידי ציון המפתחstorage-class. סוגי האחסון הנתמכים כוללים אתSTANDARD,NEARLINE,COLDLINEו-ARCHIVE. לדוגמה,--rewrite-object=storage-class=NEARLINE.
--set-object-acls-from-file: תיקון רשימות של בקרת גישה (ACL) לאובייקטים. מספקים קובץ JSON או YAML עם הרשאות להוספה או לעדכון של ישויות כמוallUsersאוallAuthenticatedUsers. לדוגמה:--set-object-acls-from-file=acl-updates.yamlאו--set-object-acls-from-file=acl-updates.json.המבנה של קובץ ה-YAML לעדכונים הוא כדלקמן:
grants: - entity: allAuthenticatedUsers role: READER remove_entities: - allUsersהמבנה של קובץ ה-JSON לעדכונים הוא כזה:
{ "grants": [ { "entity": "allAuthenticatedUsers", "role": "READER" } ], "remove_entities": [ "allUsers" ] }
--put-object-event-based-hold: הפעלת החזקות אובייקטים מבוססות-אירועים.
--no-put-object-event-based-hold: השבתה של החזקות אובייקטים מבוססות-אירועים.
--put-object-temporary-hold: הפעלת החזקות אובייקטים זמניות.
--no-put-object-temporary-hold: השבתה של החזקות אובייקטים זמניות.בדוגמה הבאה מוצג אופן יצירת משימה לעדכון המטא-נתונים של
Content-Languageל-enעבור כל האובייקטים שמפורטים ב-manifest.csv.gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --put-metadata=Content-Language=en
בדוגמה הבאה אפשר לראות איך ליצור משימה שמטרגטת כמה דליים כדי לעדכן את
Content-Languageל-en-us:gcloud storage batch-operations jobs create my-job \ --bucket-list=bucket1,bucket2 \ --included-object-prefixes='' \ --put-metadata=Content-Language=en-us
--put-metadata: עדכון מטא-נתונים של אובייקט. מציינים את צמד מפתח/ערך של מטא-נתוני האובייקט שרוצים לשנות. אפשר לציין צמד מפתח/ערך אחד או יותר כרשימה. אפשר גם להגדיר הגדרות לשמירת אובייקטים באמצעות הדגל--put-metadata. כדי לעשות זאת, מציינים את פרמטרי השמירה באמצעות השדותRetain-Untilו-Retention-Mode. לדוגמה,gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --put-metadata=Retain-Until=RETAIN_UNTIL_TIME,Retention-Mode=RETENTION_MODE
כאשר:
RETAIN_UNTIL_TIMEהוא התאריך והשעה, בפורמט RFC 3339, שעד אליהם האובייקט נשמר. לדוגמה:2025-10-09T10:30:00Z. כדי להגדיר את הגדרות השמירה של אובייקט, צריך להפעיל שמירה בקטגוריה שמכילה את האובייקט.
RETENTION_MODEהוא מצב שמירת הנתונים,UnlockedאוLocked.כששולחים בקשה לעדכון השדות
RETENTION_MODEו-RETAIN_UNTIL_TIME, חשוב לשים לב לנקודות הבאות:- כדי לעדכן את הגדרת השמירה של האובייקט, צריך לספק ערכים לא ריקים לשדות
RETENTION_MODEו-RETAIN_UNTIL_TIME. הגדרה של אחד מהם בלבד תגרום לשגיאהINVALID_ARGUMENT. - אפשר להאריך את הערך של
RETAIN_UNTIL_TIMEלאובייקטים במצביםUnlockedאוLocked. - אם רוצים לבצע את הפעולות הבאות, תקופת השמירה של האובייקט צריכה להיות במצב
Unlocked:- מפחיתים את הערך של
RETAIN_UNTIL_TIME. - מסירים את הגדרת השמירה. כדי להסיר את ההגדרה, צריך לספק ערכים ריקים בשדות
RETENTION_MODEו-RETAIN_UNTIL_TIME.
- מפחיתים את הערך של
- אם תשמיטו את שני השדות
RETENTION_MODEו-RETAIN_UNTIL_TIME, הגדרת השמירה לא תשתנה.
- כדי לעדכן את הגדרת השמירה של האובייקט, צריך לספק ערכים לא ריקים לשדות
--clear-all-object-custom-contexts: מחיקה של כל הקשרים של האובייקטים הקיימים.בדוגמה הבאה מוצג אופן יצירת משימה לניקוי כל ההקשרים של האובייקטים שמופיעים ב-
manifest.csv:gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-all-object-custom-contexts
--clear-object-custom-contexts: הסרת הקשרים עם מפתחות ספציפיים. אפשר גם לעדכן הקשרים ספציפיים ולהסיר מפתחות באמצעות הדגל--clear-object-custom-contextsואחד מהדגלים הבאים:
--update-object-custom-contexts: מספקים מפה של צמדי מפתח/ערך.בדוגמה הבאה מוצג אופן יצירת משימה להסרת ההקשר עם המפתח
temp-idולעדכון או להוספה של הקשר עם המפתחותproject-idו-cost-centerלכל האובייקטים שמפורטים ב-manifest.csv:gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-object-custom-contexts=temp-id \ --update-object-custom-contexts=project-id=project-A,cost-center=engineering
--update-object-custom-contexts-file: מציינים את הנתיב לקובץ JSON או YAML עם צמדי מפתח-ערך.בדוגמה הבאה מוצג אופן יצירת עבודה לעיבוד אובייקטים שמוגדרים ב-
manifest.csv. העבודה מבצעת את הפעולות הבאות:מסיר את כל ההקשרים באמצעות המקש
temp-id.מעדכנת הקשרים הקיימים באמצעות המפתחות
project-idו-cost-centerשמוגדרים בקובץ/tmp/context_updates.json.
gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-object-custom-contexts=temp-id \ --update-object-custom-contexts-file=/tmp/context_updates.json
כאשר
/tmp/context_updates.jsonמכיל את ההקשרים הבאים של האובייקט:{ "project-id": {"value": "project-A"}, "cost-center": {"value": "engineering"} }
ספריות לקוח
C++
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
API בפורמט JSON
כדי להגדיר את רשימת האובייקטים לעבודת העיבוד באצווה, אפשר לבחור אחת מהגדרות המקור הבאות:
- פרויקט כמקור: מכוון לאובייקטים ברמת הפרויקט באמצעות הגדרת
projectSource. במקום לפרט את הדליים או הקידומות, אתם מציינים פרמטרים של מסנן מתקדם כדי לשלוח שאילתה למטא-נתונים של תובנות לגבי אחסון באופן דינמי. למידע נוסף, אפשר לעיין בכרטיסייה API בפורמט JSON במאמר יצירת משימה באמצעות מסננים מתקדמים. - קטגוריות כמקור: מכוון לאובייקטים בקטגוריות ספציפיות באמצעות הגדרה של
bucketList. צריך לציין את דלי היעד ואת קובץ ה-CSV של המניפסט (manifest_location) או את קידומות האובייקטים (include_object_prefixes).
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON עם ההגדרות של המשימה של פעולות אצווה באחסון. אלו ההגדרות הנפוצות שצריך לכלול:
{ "Description": "JOB_DESCRIPTION", "BucketList": { "Buckets": [ { "Bucket": "BUCKET_NAME", "Manifest": { "manifest_location": "MANIFEST_LOCATION" } "PrefixList": { "include_object_prefixes": "OBJECT_PREFIXES" } } ] }, "DeleteObject": { "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE } "RewriteObject": { "kms_key":"KMS_KEY_VALUE", "storage_class":"STORAGE_CLASS_VALUE" } "PutMetadata":{ "METADATA_KEY": "METADATA_VALUE", ..., "objectRetention": { "retainUntilTime": "RETAIN_UNTIL_TIME", "mode": "RETENTION_MODE" } } "PutObjectHold": { "temporary_hold": TEMPORARY_HOLD_VALUE, "event_based_hold": EVENT_BASED_HOLD_VALUE }, "updateObjectCustomContext": { "customContextUpdates": { "updates": { "CONTEXT_KEY": { "value": "CONTEXT_VALUE" } }, "keysToClear": ["CONTEXT_KEY_TO_CLEAR"] }, "clearAll": CLEAR_ALL_VALUE }, "SetObjectAcls": { "accessControlsUpdates": { "grants": [ { "entity": "allUsers", "role": "READER" } ], "removeEntities": ["allAuthenticatedUsers"] } }, "dryRun": DRY_RUN_VALUE }
Where:
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.
JOB_DESCRIPTIONהוא התיאור של פעולות רבות על פריטי אחסון.
BUCKET_NAMEהוא שם הקטגוריה שמכילה אובייקט אחד או יותר שרוצים לעבד.כדי לציין את האובייקטים שרוצים לעבד, משתמשים באחד מהמאפיינים הבאים בקובץ ה-JSON:
MANIFEST_LOCATIONהוא המיקום של manifest. לדוגמה,gs://bucket_name/path/object_name.csv.
OBJECT_PREFIXESהיא רשימה מופרדת בפסיקים שמכילה קידומת אובייקט אחת או יותר. כדי להתאים לכל האובייקטים, צריך להשתמש ברשימה ריקה.
בהתאם לעבודה שרוצים לעבד, מציינים אחת מהאפשרויות הבאות:
מחיקת אובייקטים:
"DeleteObject": { "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE }
כאשר
OBJECT_DELETION_VALUEהואTRUEלמחיקת אובייקטים.עדכון מפתח הצפנה בניהול הלקוח לאובייקטים:
"RewriteObject": { "kms_key": KMS_KEY_VALUE }
כאשר
KMS_KEY_VALUEהוא הערך של מפתח ה-KMS של האובייקט שרוצים לעדכן.עדכון סוג האחסון של אובייקטים:
"RewriteObject": { "storage_class": STORAGE_CLASS_VALUE }
STORAGE_CLASS_VALUEהוא סוג האחסון החדש שאליו רוצים להעביר את האובייקטים. סוגי האחסון הנתמכים כוללים אתSTANDARD,NEARLINE,COLDLINEו-ARCHIVE.עדכון מטא-נתונים של אובייקטים:
"PutMetadata": { "METADATA_KEY": "METADATA_VALUE", ..., "objectRetention": { "retainUntilTime": "RETAIN_UNTIL_TIME", "mode": "RETENTION_MODE" } }
כאשר:
-
METADATA_KEY/VALUEהוא צמד מפתח/ערך של המטא-נתונים של האובייקט. אפשר לציין זוג אחד או יותר. -
RETAIN_UNTIL_TIMEהוא התאריך והשעה, בפורמט RFC 3339, עד אליהם האובייקט נשמר. לדוגמה,2025-10-09T10:30:00Z. כדי להגדיר את הגדרות השמירה באובייקט, צריך להפעיל שמירה בקטגוריה שמכילה את האובייקט. -
RETENTION_MODEהוא מצב שמירת הנתונים,UnlockedאוLocked.כששולחים בקשה לעדכון השדות
RETENTION_MODEו-RETAIN_UNTIL_TIME, חשוב לשים לב לנקודות הבאות:- כדי לעדכן את הגדרת השמירה של האובייקט, צריך לספק ערכים לא ריקים לשדות
RETENTION_MODEו-RETAIN_UNTIL_TIME. הגדרה של אחד מהם בלבד תגרום לשגיאהINVALID_ARGUMENT. - אפשר להאריך את הערך של
RETAIN_UNTIL_TIMEלאובייקטים במצביםUnlockedאוLocked. - אם רוצים לבצע את הפעולות הבאות, תקופת השמירה של האובייקט צריכה להיות במצב
Unlocked:- מפחיתים את הערך של
RETAIN_UNTIL_TIME. - מסירים את הגדרת השמירה. כדי להסיר את ההגדרה, צריך לספק ערכים ריקים בשדות
RETENTION_MODEו-RETAIN_UNTIL_TIME.
- מפחיתים את הערך של
- אם תשמיטו את שני השדות
RETENTION_MODEו-RETAIN_UNTIL_TIME, הגדרת השמירה לא תשתנה.
- כדי לעדכן את הגדרת השמירה של האובייקט, צריך לספק ערכים לא ריקים לשדות
עדכון החזקות אובייקטים:
"PutObjectHold": { "temporary_hold": TEMPORARY_HOLD_VALUE, "event_based_hold": EVENT_BASED_HOLD_VALUE }
כאשר:
TEMPORARY_HOLD_VALUEמשמשת להפעלה או להשבתה של דגל object hold זמני. הערך1מפעיל את ההקפאה, והערך2משבית אותה.
EVENT_BASED_HOLD_VALUEמשמש להפעלה או להשבתה של דגל object hold מבוסס-אירועים. הערך1מפעיל את ההקפאה, והערך2משבית אותה.
עדכון הקשרים של אובייקטים:
"updateObjectCustomContext": { "customContextUpdates": { "updates": { "CONTEXT_KEY": { "value": "CONTEXT_VALUE" } }, "keysToClear": ["CONTEXT_KEY_TO_CLEAR"] }, "clearAll": CLEAR_ALL_VALUE }
כאשר:
-
CONTEXT_KEYהוא מפתח ההקשר של האובייקט שרוצים להוסיף או לעדכן. -
CONTEXT_VALUEהוא ערך ההקשר של האובייקט עבור המפתח. -
CONTEXT_KEY_TO_CLEARהוא המפתח שרוצים להסיר. -
CLEAR_ALL_VALUEמוגדר ל-trueכדי למחוק את כל ההקשרים הקיימים של האובייקטים.
-
עדכון רשימות של בקרת גישה (ACL) לאובייקטים:
"SetObjectAcls": { "accessControlsUpdates": { "grants": [ { "entity": "ENTITY_NAME", "role": "ROLE_NAME" } ], "removeEntities": ["ENTITY_TO_REMOVE"] } }
כאשר:
-
ENTITY_NAMEהיא הישות שרוצים להוסיף או לעדכן את הגישה שלה. לדוגמה,allUsers,allAuthenticatedUsersאו משתמש או קבוצה ספציפיים. -
ROLE_NAMEהוא התפקיד שרוצים להקצות. לדוגמה,READER, OWNER. -
ENTITY_TO_REMOVEהוא הישות שרוצים להסיר את פרטי הכניסה שלה.
-
-
DRY_RUN_VALUEהוא ערך בוליאני אופציונלי. מגדירים את הערךtrueכדי להריץ את העבודה במצב פרימטר לבדיקות. ערך ברירת המחדל הואfalse.
משתמשים ב-
curlכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של משימת פעולות אצווה לאחסוןPOST:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?job_id=JOB_NAME"
כאשר:
-
JSON_FILE_NAMEהוא השם של קובץ ה-JSON. -
PROJECT_IDהוא המזהה או המספר של הפרויקט. לדוגמה,my-project.
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.
-
קבלת פרטים על משימות של פעולות רבות על פריטי אחסון
בקטע הזה מוסבר איך מקבלים את פרטי העבודה של פעולות באצווה באחסון.
כדי לקבל את ההרשאות שנדרשות לצפייה במשימת פעולות באצווה של אחסון, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
- ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמשויכת לפעולה.
- בדף Bucket details, לוחצים על הכרטיסייה Operations.
- ברשימת הפעולות, לוחצים על מזהה הפעולה של העבודה שרוצים לראות.
- בדף הפרטים מוצגים מדדים של העבודה בכרטיסייה סקירה כללית, כמו אובייקטים שזוהו, אובייקטים שעברו עיבוד ושגיאות שהתרחשו.
- בטבלה סיכום השגיאות, בודקים את פרטי הכשל בביצוע או לוחצים על הצגה ב-Cloud Logging כדי לראות את הרשומות.
- כדי לראות את הגדרות ההגדרה של העבודה, לוחצים על הכרטיסייה Configuration.
שורת הפקודה
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
בסביבת הפיתוח, מריצים את הפקודה
gcloud storage batch-operations jobs describe.gcloud storage batch-operations jobs describe JOB_NAME
כאשר:
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.כשמריצים ניסיון של עבודה, הפלט כולל את השדות הבאים:
-
totalObjectCount: מוצג מספר האובייקטים שתואמים לקריטריוני הבחירה. -
errorSummaries: מציג רשימה של שגיאות שנמצאו במהלך הרצת הבדיקה, כמו בעיות בהרשאות או הגדרות לא תקינות. -
totalBytesFound: מוצג הגודל הכולל של האובייקטים שהושפעו. השדה הזה מופיע רק כשמשתמשים בקידומות של אובייקטים לבחירת אובייקטים.
אם הפעולה בוצעה ללא שגיאות, התגובה לגבי ההרצה היבשה תיראה דומה לדוגמה הבאה:
bucketList: buckets: - bucket: my-bucket manifest: manifestLocation: gs://my-bucket/manifest.csv completeTime: '2025-10-27T23:56:32Z' counters: totalObjectCount: '4' createTime: '2025-10-27T23:56:22.243528568Z' dryRun: true name: projects/my-project/locations/global/jobs/my-job putMetadata: contentLanguage: en state: SUCCEEDEDתשובה תקינה לגבי משימה לא כוללת את השדה
dryRunומחזירה את המדדים הבאים בשדהcounters:- המספר הכולל של האובייקטים שנמצאו.
- סך הבייטים שנמצאו כשמשתמשים בקידומות של אובייקטים.
- טרנספורמציות אובייקטים שהושלמו בהצלחה.
- שינויים באובייקט נכשלו, אם רלוונטי.
- הקשרים של האובייקטים שנוצרו, אם רלוונטי.
- הקשרים של האובייקט נמחקו, אם רלוונטי.
- ההקשרים של האובייקטים עודכנו, אם רלוונטי. המונה הזה עוקב אחרי עדכונים שבוצעו במפתחות הקשר הקיימים.
התגובה להרצת משימה בפועל נראית בערך כך:
bucketList: buckets: - bucket: my-bucket manifest: manifestLocation: gs://my-bucket/manifest.csv completeTime: '2025-10-31T20:19:42.357826655Z' counters: succeededObjectCount: '4' totalObjectCount: '4' createTime: '2025-10-31T20:19:22.016517077Z' name: projects/my-project/locations/global/jobs/my-job putMetadata: contentLanguage: en state: SUCCEEDED-
ספריות לקוח
C++
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
API בפורמט JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של משימת פעולות אצווה לאחסוןGET:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_NAME"
כאשר:
-
PROJECT_IDהוא המזהה או המספר של הפרויקט. לדוגמה,my-project. -
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.
כשמריצים ניסיון של עבודה, הפלט כולל את השדות הבאים:
-
totalObjectCount: מוצג מספר האובייקטים שתואמים לקריטריוני הבחירה. -
errorSummaries: מציג רשימה של שגיאות שנמצאו במהלך הרצת הבדיקה, כמו בעיות בהרשאות או הגדרות לא תקינות. -
totalBytesFound: מוצג הגודל הכולל של האובייקטים שהושפעו. השדה הזה מופיע רק כשמשתמשים בקידומות של אובייקטים לבחירת אובייקטים.
אם הפעולה בוצעה ללא שגיאות, התגובה של ההרצה היבשה תיראה דומה לדוגמה הבאה:
{ "name": "projects/my-project/locations/global/jobs/my-job", "description": "dry-run-job", "deleteObject": { "permanent_object_deletion_enabled": true }, "createTime": "2025-10-28T00:26:53.900882459Z", "completeTime": "2025-10-28T00:27:04.101663275Z", "counters": { "totalObjectCount": "5", "totalBytesFound": "203" }, "state": "SUCCEEDED", "bucketList": { "buckets": [ { "bucket": "my-bucket", "prefixList": { "includedObjectPrefixes": [ "" ] } } ] }, "dryRun": true }תשובה תקינה לגבי משימה לא כוללת את השדה
dryRunומחזירה את המדדים הבאים בשדהcounters:- המספר הכולל של האובייקטים שנמצאו.
- סך הבייטים שנמצאו כשמשתמשים בקידומות של אובייקטים.
- טרנספורמציות אובייקטים שהושלמו בהצלחה.
- שינויים באובייקט נכשלו, אם רלוונטי.
- הקשרים של האובייקטים שנוצרו, אם רלוונטי.
- הקשרים של האובייקט נמחקו, אם רלוונטי.
ההקשרים של האובייקטים עודכנו, אם רלוונטי. המונה הזה עוקב אחרי עדכונים שבוצעו במפתחות הקשר הקיימים.
התגובה להרצת משימה בפועל נראית בערך כך:
{ "name": "my-job", "description": "my-delete-objects-job", "deleteObject": { "permanent_object_deletion_enabled": true }, "createTime": "2025-10-28T00:26:53.900882459Z", "completeTime": "2025-10-28T00:27:04.101663275Z", "counters": { "succeededObjectCount: "5" "totalObjectCount": "5", "totalBytesFound": "203" }, "state": "SUCCEEDED", "bucketList": { "buckets": [ { "bucket": "my-bucket", "prefixList": { "includedObjectPrefixes": [ "" ] } } ] } }
-
הצגת רשימה של פעולות בקטגוריות
במשימות שכוללות כמה קטגוריות, אפשר לראות את ההתקדמות והסטטוס של הפעולות בקטגוריות ספציפיות. כדי להציג את הפעולות שבוצעו בדליים עבור משימה ספציפית, מריצים את הפקודה gcloud storage batch-operations bucket-operations list:
gcloud storage batch-operations bucket-operations list --job=JOB_NAME
אפשר גם לסנן את הרשימה לפי באקטים ספציפיים באמצעות הדגל --buckets:
gcloud storage batch-operations bucket-operations list --job=JOB_NAME --buckets=BUCKET_NAME_LIST
בדוגמה הבאה אפשר לראות איך מציגים את רשימת הפעולות של bucket1 ו-bucket2 עבור העבודה my-job:
gcloud storage batch-operations bucket-operations list --job=my-job --buckets=bucket1,bucket2
כאשר:
-
JOB_NAMEהוא השם הייחודי של משימת הפעולות באצווה באחסון שיצרתם. לדוגמה,my-job. -
BUCKET_NAME_LISTהיא רשימה של שמות קטגוריות שמופרדים בפסיקים, בלי רווחים בין השמות. לדוגמה,bucket1,bucket2.
מתארים פעולה בקטגוריה
כדי לראות פרטים של פעולה ספציפית ב-Bucket, אפשר להשתמש באחת מהשיטות הבאות:
משתמשים בפקודה
gcloud storage batch-operations bucket-operations describeעם הדגל של שם משאב הפעולה:gcloud alpha storage batch-operations bucket-operations describe BUCKET_OPERATION_RESOURCE_NAME
כאשר:
-
BUCKET_OPERATION_RESOURCE_NAMEהוא הנתיב המלא של המשאב של פעולת הקטגוריה. לדוגמה,projects/my-project/locations/global/jobs/my-job/bucketOperations/bo-1.
-
משתמשים בפקודה
gcloud storage batch-operations bucket-operations describeעם הדגלים של מזהה הפעולה של הקטגוריה ומזהה העבודה:gcloud alpha storage batch-operations bucket-operations describe BUCKET_OPERATION_ID --job=JOB_NAME
כאשר:
-
BUCKET_OPERATION_IDהוא המזהה של פעולת הקטגוריה. -
JOB_NAMEהוא השם הייחודי של משימת הפעולות באצווה באחסון שיצרתם. לדוגמה,my-job.
-
הצגת רשימה של משימות של פעולות רבות על פריטי אחסון
בקטע הזה מוסבר איך להציג רשימה של משימות של פעולות אצווה של אחסון בפרויקט.
כדי לקבל את ההרשאות שנדרשות להצגת רשימת המשימות של פעולות באצווה ב-Storage, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Storage Admin (אדמין לניהול אחסון) (roles/storage.admin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
- ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמשויכת לפעולה.
- בדף Bucket details, לוחצים על הכרטיסייה Operations. בדף Operations מוצגת רשימה של פעולות פעילות שמתבצעות.
שורת הפקודה
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
בסביבת הפיתוח, מריצים את הפקודה
gcloud storage batch-operations jobs list.gcloud storage batch-operations jobs list
ספריות לקוח
C++
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
API בפורמט JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה שלLISTפעולות אצווה לאחסון:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs"
כאשר:
PROJECT_IDהוא המזהה או המספר של הפרויקט. לדוגמה,my-project.
ביטול של פעולות רבות על פריטי אחסון
בקטע הזה מוסבר איך לבטל עבודת אצווה של אחסון בפרויקט.
כדי לקבל את ההרשאות שנדרשות לביטול של משימת פעולות באצווה ב-Storage, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמשויכת לפעולות רבות על פריטי אחסון שרוצים לבטל.
לוחצים על הכרטיסייה פעולות. בכרטיסייה הזו מוצגת רשימה של משימות של פעולות בחבילה. אפשר לבטל רק עבודות שנמצאות בתהליך.
ברשימת הפעולות, בוחרים משימה אחת או יותר שרוצים לבטל ולוחצים על ביטול.
שורת הפקודה
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
בסביבת הפיתוח, מריצים את הפקודה
gcloud storage batch-operations jobs cancel.gcloud storage batch-operations jobs cancel JOB_NAME
כאשר:
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.
ספריות לקוח
C++
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
API בפורמט JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה שלCANCELפעולות אצווה לאחסון:curl -X CANCEL \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_NAME"
כאשר:
PROJECT_IDהוא המזהה או המספר של הפרויקט. לדוגמה,my-project.
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.
מחיקה של משימה של פעולות רבות על פריטי אחסון
בקטע הזה מוסבר איך למחוק עבודת אצווה של פעולות אחסון.
כדי לקבל את ההרשאות שנדרשות למחיקת משימה של פעולות באצווה ב-Storage, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על השם של הקטגוריה שמשויכת לפעולות רבות על פריטי אחסון שרוצים למחוק.
לוחצים על הכרטיסייה פעולות. בכרטיסייה הזו מוצגת רשימה של משימות של פעולות בחבילה. אפשר למחוק רק משימות שלא פועלות, כמו משימות שהצליחו, נכשלו או בוטלו.
ברשימת הפעולות, בוחרים משימה אחת או יותר שרוצים למחוק ולוחצים על מחיקה.
שורת הפקודה
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
בסביבת הפיתוח, מריצים את הפקודה
gcloud storage batch-operations jobs delete.gcloud storage batch-operations jobs delete JOB_NAME
כאשר:
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.
ספריות לקוח
C++
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
API בפורמט JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה שלDELETEפעולות אצווה לאחסון:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_NAME"
כאשר:
PROJECT_IDהוא המזהה או המספר של הפרויקט. לדוגמה,my-project.
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.
יצירת משימת פעולות באצווה לאחסון באמצעות מערכי נתונים של Storage Insights
כדי להריץ עבודת פעולות אצווה על אובייקטים שמופיעים במערך נתונים, בוחרים באחת מהאפשרויות הבאות:
שימוש במסננים מתקדמים: סינון אובייקטים באופן דינמי ברמת הפרויקט ישירות בפקודה של Google Cloud CLI.
מערכי נתונים של תובנות לגבי אחסון נוצרים מצילומי מצב תקופתיים של המטא-נתונים של האחסון. לכל snapshot יש זמן snapshot שמראה מתי המטא-נתונים נשמרו. כשמריצים משימה באצווה באמצעות מסננים מתקדמים, שעת הצילום הזו קובעת אילו אובייקטים וגרסאות יעברו עיבוד. כברירת מחדל, הפעולות באצווה ב-Storage בוחרות אוטומטית את השעה האחרונה של תמונת המצב. כדי למנוע פעולות על נתונים לא עדכניים, יצירת המשימה תיכשל אם ה-snapshot שנבחר ישן יותר מיומיים. במאמר פתרון בעיות בפעולות באצווה ב-Storage מוסבר איך לפתור את הבעיה הזו.
שימוש בקובץ מניפסט: מריצים שאילתה ב-BigQuery כדי ליצור קובץ מניפסט בפורמט CSV, ואז מספקים אותו לעבודה.
השיטות מתוארות בקטעים הבאים.
שימוש במסננים מתקדמים
במקום ליצור קובץ מניפסט, אפשר להשתמש במסננים של Common Expression Language (CEL) כדי לבחור אובייקטים ישירות על סמך שדות במערך הנתונים של Storage Insights. אפשר להריץ עבודות בכמה דליים בפרויקט. כשמשתמשים במסנני מערך נתונים לבחירת אובייקטים, פעולות אצווה של אחסון מכוונות לאובייקטים פעילים ועדכניים נכון לנקודת הזמן של צילום מערך הנתונים שנבחר. לכן, העבודה כוללת רק אובייקטים עם ערך NULL גם ל-softDeleteTime וגם ל-timeDeleted בזמן הצילום.
שורת הפקודה
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מריצים את הפקודה
gcloud storage batch-operations jobs create:gcloud storage batch-operations jobs create JOB_NAME \ {--insights-dataset-config=INSIGHTS_DATASET_CONFIG_RESOURCE_NAME --target-project=TARGET_PROJECT [--bucket-filters=BUCKET_FILTER_CEL] [--object-filters=OBJECT_FILTER_CEL] [--target-locations=TARGET_LOCATIONS] [--target-snapshot-time=TARGET_SNAPSHOT_TIME] | --dry-run-job-id=DRY_RUN_JOB_ID} \ --JOB_TYPE_FLAGכאשר:
-
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון. -
INSIGHTS_DATASET_CONFIG_RESOURCE_NAME: שם המשאב של הגדרת מערך הנתונים. לדוגמה:projects/{project-id}/locations/{location-id}/datasetConfigs/{dataset_config_id}. צריך לציין את הפרמטר הזה לפני שמשתמשים בדגלים--bucket-filtersו---object-filters. -
TARGET_PROJECT: מזהה הפרויקט או מספר הפרויקט שמשויכים למשאבי היעד. -
BUCKET_FILTER_CELו-OBJECT_FILTER_CEL(אופציונלי): ביטויי הסינון של CEL שמשמשים לבחירת אובייקטים. דוגמאות:--bucket-filters="name in ['bucket-1', 'bucket-2']"--object-filters="size >= 5000 && name.endsWith('.pdf')"מידע על שדות, אופרטורים ופונקציות נתמכים מופיע במאמר בנושא מסנני CEL.
-
TARGET_LOCATIONS(אופציונלי): רשימה של מיקומי Cloud Storage שמשמשת לצמצום היקף העבודה. לדוגמה:us,us-central1,us-east4. משתמשים בפרמטר הזה כדי להחריג מיקומים שבהם יש הפסקת שירות. אם מציינים רק אתTARGET_LOCATIONSומשמיטים אתTARGET_SNAPSHOT_TIME, העבודה בוחרת באופן אוטומטי את חותמת הזמן של תמונת המצב העדכנית ביותר שאוכלסה בהצלחה בתצוגות של מאפייני האובייקט והקטגוריה בכל המיקומים שצוינו. -
TARGET_SNAPSHOT_TIME(אופציונלי): חותמת הזמן לפי שעון UTC של תמונת מצב של מערך הנתונים שרוצים להשתמש בה, בפורמט RFC 3339. לדוגמה,2026-05-03T16:00:00Z. התמונה הזו צריכה להיות קיימת בתצוגות של מאפייני הדלי והאובייקט. אם מציינים את הפרמטר הזה, צריך לציין גם את הפרמטרTARGET_LOCATIONS. -
DRY_RUN_JOB_ID: המזהה של משימת הרצה יבשה שהופעלה בעבר. אם מציינים את הפרמטר הזה, אי אפשר לציין פרמטרים אחרים לבחירת אובייקטים, כולל--insights-dataset-config,--target-project,--bucket-filters,--object-filters,--target-locationsו---target-snapshot-time. העבודות הפעילות שולפות את כל קריטריוני הבחירה ישירות מהעבודה של ההרצה היבשה. -
JOB_TYPE_FLAG: הדגל שמתאים לפעולה בכמות גדולה שרוצים לבצע, כמו--put-metadataאו--delete-object.
-
API בפורמט JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ הגדרות בפורמט JSON שמציין את המסננים של מערך הנתונים ואת ההגדרות של פעולות בכמות גדולה. לדוגמה:
{ "description": "JOB_DESCRIPTION", "projectSource": { "project": "projects/TARGET_PROJECT", "insightsDatasetConfig": "INSIGHTS_DATASET_CONFIG_RESOURCE_NAME", "bucketFilters": { "expression": "BUCKET_FILTER_CEL" }, "objectFilters": { "expression": "OBJECT_FILTER_CEL" }, "snapshotTime": "SNAPSHOT_TIME", "targetLocations": { "locations": ["LOCATION_1", "LOCATION_2"] } }, "deleteObject": { "permanentObjectDeletionEnabled": OBJECT_DELETION_VALUE } }
כאשר:
-
JOB_DESCRIPTIONהוא תיאור התפקיד.-
TARGET_PROJECTהוא מזהה הפרויקט או מספר הפרויקט שמשויכים לאובייקטים של היעד.
-
-
INSIGHTS_DATASET_CONFIG_RESOURCE_NAMEהוא שם המשאב המוגדר במלואו של הגדרת מערך הנתונים (לדוגמה,projects/{project-id}/locations/{location-id}/datasetConfigs/{dataset_config_id}). -
BUCKET_FILTER_CELהוא ביטוי הסינון של CEL לדליים. לדוגמה,name in ['bucket-1', 'bucket-2']. פרטים על מילות מפתח, שדות ואופרטורים נתמכים זמינים במאמר חומר עזר בנושא מסנני CEL. -
OBJECT_FILTER_CELהוא ביטוי המסנן של CEL לאובייקטים. לדוגמה,size >= 5000 && name.endsWith('.pdf'). -
snapshotTime(אופציונלי): חותמת זמן ספציפית לפי שעון UTC בפורמט RFC 3339 (לדוגמה,"2026-05-03T16:00:00Z") שמציינת איזו תמונת מצב של מערך הנתונים תשמש. תמונת המצב הזו צריכה להופיע גם בתצוגות של קבוצת היעד וגם בתצוגות של אובייקט מערך הנתונים בכל מיקומי היעד. אם מציינים את השדה הזה, צריך לציין גם את השדהtargetLocations. -
targetLocations(אופציונלי): אובייקט JSON שמציין רשימה של מיקומי Cloud Storage (לדוגמה,["us", "us-central1", "us-east4"]) כדי לסנן את היקף העבודה. אם יש הפסקת חשמל בתלות במיקומים ספציפיים, אפשר לצמצם את העבודה למיקומים ספציפיים. אם מציינים רק אתtargetLocationsומשמיטים אתsnapshotTime, העבודה בוחרת באופן אוטומטי את חותמת הזמן של תמונת המצב העדכנית ביותר שאוכלסה בהצלחה בתצוגות של מאפייני האובייקט והקטגוריה בכל המיקומים שצוינו. -
OBJECT_DELETION_VALUEהוא הערך הבוליאני שקובע אם המחיקה היא סופית. לדוגמה,trueאוfalse.
-
שליחת בקשת
POSTבאמצעותcURLכדי להפעיל את העבודה:curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ -d @JSON_FILE_NAME \ "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?job_id=JOB_NAME"כאשר:
-
JSON_FILE_NAMEהוא השם של קובץ ה-JSON. -
PROJECT_IDהוא המזהה או המספר של הפרויקט. לדוגמה,my-project. -
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.
-
שימוש בקובץ מניפסט
כדי לקבל את ההרשאות שנדרשות ליצירת משימה של פעולות באצווה באחסון, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת קובץ מניפסט באמצעות קבוצות נתונים של Storage Insights
אפשר ליצור את קובץ המניפסט של משימת פעולות אצווה באחסון על ידי חילוץ נתונים מ-BigQuery. כדי לעשות זאת, צריך להריץ שאילתה על מערך הנתונים המקושר, לייצא את הנתונים שמתקבלים כקובץ CSV ולשמור אותו בקטגוריה של Cloud Storage. אחר כך, אפשר להשתמש בקובץ ה-CSV הזה כקובץ מניפסט בעבודת אצווה של פעולות אחסון.
ההרצה של שאילתת ה-SQL הבאה ב-BigQuery בתצוגת מערך נתונים של Storage Insights מאחזרת אובייקטים בגודל של יותר מ-1KiB שנקראים Temp_Training:
EXPORT DATA OPTIONS( uri=`URI`, format=`CSV`, overwrite=OVERWRITE_VALUE, field_delimiter=',') AS SELECT bucket, name, generation FROM DATASET_VIEW_NAME WHERE bucket = BUCKET_NAME AND name LIKE (`Temp_Training%`) AND size > 1024 * 1024 AND snapshotTime = SNAPSHOT_TIME
כאשר:
-
URIהוא ה-URI של הקטגוריה שמכילה את המניפסט. לדוגמה,gs://bucket_name/path_to_csv_file/*.csv. כשמשתמשים בתו כללי*.csv, מערכת BigQuery מייצאת את התוצאה לכמה קובצי CSV. -
OVERWRITE_VALUEהוא ערך בוליאני. אם המדיניות מוגדרת כ-true, פעולת הייצוא מחליפה קבצים קיימים במיקום שצוין.
DATASET_VIEW_NAMEהוא השם המוגדר במלואו של תצוגת מערך הנתונים של Storage Insights בפורמטPROJECT_ID.DATASET_ID.VIEW_NAME. כדי לראות את השם של קבוצת הנתונים, צופים בקבוצת הנתונים המקושרת.כאשר:
-
PROJECT_IDהוא המזהה או המספר של הפרויקט. לדוגמה,my-project. -
DATASET_IDהוא שם מערך הנתונים. לדוגמה,objects-deletion-dataset. -
VIEW_NAMEהוא שם התצוגה של מערך הנתונים. לדוגמה,bucket_attributes_view.
-
BUCKET_NAMEהוא שם הקטגוריה. לדוגמה,my-bucket.
SNAPSHOT_TIMEהוא זמן הצילום של תצוגת קבוצת הנתונים של Storage Insights. לדוגמה,2024-09-10T00:00:00Z.
יצירת משימת פעולות אצווה באחסון באמצעות קובץ מניפסט
כדי ליצור משימת אחסון של פעולות בכמות גדולה לעיבוד אובייקטים שמופיעים במניפסט, מבצעים את השלבים הבאים:
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקטים שרוצים לבצע עליהם פעולות באצווה.
הדף Bucket details נפתח עם הכרטיסייה Objects שנבחרה.
- לוחצים על יצירת פעולות בכמות גדולה.
- בחלונית Select operation, בוחרים את סוג הפעולה:
- ניהול השהיות של אובייקטים: בוחרים באפשרות השהיה זמנית או השהיה מבוססת-אירועים. מידע נוסף זמין במאמר בנושא השהיות אובייקטים.
- עדכון מטא-נתונים של אובייקט: כדי להוסיף מטא-נתונים של אובייקט, מבצעים את הפעולות הבאות:
- כדי להוסיף מטא-נתונים מותאמים אישית, מבצעים את השלבים הבאים:
- בשדה Key (מפתח), מזינים שם של מפתח.
- בשדה ערך, מזינים ערך למפתח.
- אופציונלי: לוחצים על + הוספת פריט כדי להוסיף עוד צמדי מפתח/ערך.
- כדי לעדכן מטא-נתונים עם מַפְתח קבוע, מבצעים את השלבים הבאים:
- כדי להרחיב את הקטע עדכון מטא-נתונים עם מַפְתח קבוע, לוחצים על החץ להרחבה .
- ברשימה Select one or more metadata to update, בוחרים את פריטי המטא-נתונים שרוצים לערוך.
- כדי להוסיף מטא-נתונים מותאמים אישית, מבצעים את השלבים הבאים:
- עדכון או החלפה של מפתח ההצפנה: כדי להשתמש במפתח ההצפנה של האובייקטים או לעדכן אותו, מבצעים את הפעולות הבאות:
- ברשימה Select a Cloud KMS key, בוחרים מפתח הצפנה בניהול הלקוח (CMEK).
- אופציונלי: בוחרים באפשרות החלפת פרויקט כדי לבחור מפתח מפרויקט אחר, או באפשרות הזנת מפתח באופן ידני כדי למלא את הפרטים.
- מחיקת אובייקטים: כדי למחוק אובייקטים, מבצעים את הפעולות הבאות:
- בדיקה אם התכונה 'ניהול גרסאות של אובייקטים' מופעלת
אם התכונה 'ניהול גרסאות של אובייקטים' מופעלת, בוחרים באחת מאפשרויות המחיקה הבאות:
- בוחרים באפשרות מחיקת כל הגרסאות של האובייקטים כדי להסיר גם את הגרסאות הפעילות וגם את הגרסאות הלא עדכניות.
- בוחרים באפשרות מחיקה סופית של גרסאות פעילות כדי להסיר רק את הגרסה הפעילה.
אם ניהול גרסאות של אובייקטים לא מופעל, כל האובייקטים שנבחרו למחיקה נמחקים באופן סופי.
- לוחצים על הבא.
- בחלונית Name operation & specify objects (מתן שם לפעולה וציון אובייקטים), מבצעים את הפעולות הבאות:
- בשדה שם, מזינים שם.
- אופציונלי: בשדה תיאור, מזינים תיאור.
- בקטע Specify objects (ציון אובייקטים), בוחרים באפשרות Upload lists of
objects using manifest CSV files (העלאת רשימות של אובייקטים באמצעות קובצי CSV של מניפסט), ואז מבצעים את הפעולות הבאות:
- מעלים את קובץ ה-CSV של המניפסט לדלי. הקובץ הזה צריך להכיל כותרות של שם הקטגוריה, מפתח האובייקט ומספר דור.
- ברשימה Select manifest file mode, בוחרים באחת מהאפשרויות הבאות:
- אם בוחרים באפשרות בחירת קובץ מניפסט מ-Cloud Storage, לוחצים על Browse בשדה בחירת קובץ מניפסט מ-Cloud Storage. בתיבת הדו-שיח בחירת אובייקט שמופיעה, מנווטים לקובץ ה-CSV של המניפסט ולוחצים על בחירה.
- אם בוחרים באפשרות Select multiple manifest files using wildcard (בחירת כמה קובצי מניפסט באמצעות תוו כללי), מזינים את נתיב הקובץ בשדה Enter manifest file location using wildcard (הזנת מיקום קובץ המניפסט באמצעות תוו כללי). לדוגמה,
bucket-name/folder/manifest_*.
- לוחצים על יצירה.
שורת הפקודה
-
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
בסביבת הפיתוח, מריצים את הפקודה
gcloud storage batch-operations jobs create:gcloud storage batch-operations jobs create \ JOB_NAME \ {--bucket=SOURCE_BUCKET | --bucket-list=SOURCE_BUCKET_LIST} \ --manifest-location=URI \ JOB_TYPE_FLAGכאשר:
JOB_NAMEהוא השם של עבודת הפעולות הרבות על פריטי אחסון.
SOURCE_BUCKETהוא שם הקטגוריה שמכילה את האובייקטים שרוצים לעבד. לדוגמה,my-bucket.
SOURCE_BUCKET_LISTהיא רשימה מופרדת בפסיקים של שם אחד או יותר של קטגוריות שמכילות את האובייקטים שרוצים לעבד. לדוגמה,bucket1,bucket2.
URIהוא ה-URI של הקטגוריה שמכילה את המניפסט. לדוגמה,gs://bucket_name/path_to_csv_file/*.csv. כשמשתמשים בתו כללי*.csv, מערכת BigQuery מייצאת את התוצאה לכמה קובצי CSV.
JOB_TYPE_FLAGהוא אחד מהדגלים הבאים, בהתאם לסוג העבודה.
--delete-object: מחיקת אובייקט אחד או יותר.
--put-metadata: עדכון מטא-נתונים של אובייקט. מטא-נתונים של אובייקט מאוחסנים כצמדי מפתח/ערך. מציינים את צמד המפתח/ערך של המטא-נתונים שרוצים לשנות. אפשר לציין צמד מפתח/ערך אחד או יותר כרשימה. אפשר גם לספק הגדרות לשמירת אובייקטים באמצעות הדגל--put-metadata.
--rewrite-object: עדכון מפתחות ההצפנה בניהול הלקוח של אובייקט אחד או יותר. אפשר להשתמש בדגל הזה גם כדי לשנות את סוג האחסון (storage class) של האובייקט על ידי ציון המפתחstorage-class. סוגי האחסון הנתמכים כוללים אתSTANDARD,NEARLINE,COLDLINEו-ARCHIVE. לדוגמה:--rewrite-object=storage-class=NEARLINE.
--set-object-acls-from-file: תיקון רשימות של בקרת גישה (ACL) לאובייקטים. מציינים את הנתיב לקובץ JSON או YAML עם הרשאות להוספה או לעדכון של ישויות כמוallUsersאוallAuthenticatedUsers. לדוגמה:--set-object-acls-from-file=acl-updates.yaml.
--put-object-event-based-hold: הפעלת החזקות אובייקטים מבוססות-אירועים.
--no-put-object-event-based-hold: השבתה של החזקות אובייקטים מבוססות-אירועים.
--put-object-temporary-hold: הפעלת החזקות אובייקטים זמניות.
--no-put-object-temporary-hold: השבתה של השהיות של אובייקטים זמניים.
--clear-all-object-custom-contexts: מחיקה של כל הקשרים של האובייקטים הקיימים.בדוגמה הבאה מוצג אופן יצירת משימה לניקוי כל ההקשרים של האובייקטים שמופיעים ב-
manifest.csv:gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-all-object-custom-contexts
--clear-object-custom-contexts: הסרת הקשרים עם מפתחות ספציפיים. אפשר גם לעדכן הקשרים ספציפיים ולהסיר מפתחות באמצעות הדגל--clear-object-custom-contextsואחד מהדגלים הבאים:
--update-object-custom-contexts: מספקים מפה של צמדי מפתח/ערך.בדוגמה הבאה מוצג אופן יצירת משימה להסרת ההקשר עם המפתח
temp-idולעדכון או להוספה של הקשר עם המפתחותproject-idו-cost-centerלכל האובייקטים שמפורטים ב-manifest.csv:gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-object-custom-contexts=temp-id \ --update-object-custom-contexts=project-id=project-A,cost-center=engineering
--update-object-custom-contexts-file: מציינים את הנתיב לקובץ JSON או YAML עם צמדי מפתח-ערך.בדוגמה הבאה מוצג אופן יצירת עבודה לעיבוד אובייקטים שמוגדרים ב-
manifest.csv. העבודה מבצעת את הפעולות הבאות:מסיר את כל ההקשרים באמצעות המקש
temp-id.מעדכנת הקשרים הקיימים באמצעות המפתחות
project-idו-cost-centerשמוגדרים בקובץ/tmp/context_updates.json.
gcloud storage batch-operations jobs create my-job \ --bucket=my-bucket \ --manifest-location=gs://my-bucket/manifest.csv \ --clear-object-custom-contexts=temp-id \ --update-object-custom-contexts-file=/tmp/context_updates.json
כאשר
/tmp/context_updates.jsonמכיל את ההקשרים הבאים של האובייקט:{ "project-id": {"value": "project-A"}, "cost-center": {"value": "engineering"} }
שילוב עם VPC Service Controls
VPC Service Controls מספק שכבת אבטחה נוספת למשאבים של פעולות אצווה באחסון. כשמציבים פרויקטים בתוך גבולות גזרה לשירות, עוזרים להגן על משאבים ושירותים מפני בקשות שמקורן מחוץ לגבולות הגזרה. מידע נוסף על פרטי גבולות גזרה לשירות של VPC Service Controls עבור פעולות אצווה של אחסון זמין במאמר מוצרים נתמכים ומגבלות.
שימוש ביומני הביקורת של Cloud למשימות של פעולות אצווה ב-Storage
עבודות של פעולות אצווה ב-Storage מתעדות טרנספורמציות באובייקטים ב-Cloud Storage ביומני הביקורת של Cloud ל-Cloud Storage. כדי לעקוב אחרי השינויים האלה, אפשר להשתמש ביומני הביקורת של Cloud עם Cloud Storage. לפרטים על הפעלת יומני ביקורת, ראו הפעלת יומני ביקורת. ברשומה ביומן הביקורת, שדה המטא-נתונים callUserAgent עם הערך StorageBatchOperations מציין שהשינוי בוצע על ידי פעולות אצווה של אחסון.