פעולות באצווה באחסון מאפשרות להריץ משימות באצווה כדי לבצע אוטומציה של משימות בהיקף גדול באובייקטים ב-Cloud Storage. אתם יכולים ליצור, להציג, לבטל ולמחוק את המשימות האלה, וגם לעקוב אחרי פעילות הניהול באמצעות יומני הביקורת של Cloud.
לפני שמתחילים
כדי ליצור ולנהל משימות של פעולות רבות על פריטי אחסון, מבצעים את השלבים שבקטעים הבאים.
הגדרת Storage Intelligence
כדי ליצור ולנהל משימות של פעולות רבות על פריטי אחסון, צריך להגדיר את Storage Intelligence בקטגוריה שבה רוצים להריץ את המשימה.
הפעלת API של פעולות רבות על פריטי אחסון
מפעילים את API של פעולות רבות על פריטי אחסון.
gcloud services enable storagebatchoperations.googleapis.com
יצירת קובץ מניפסט
אם אתם רוצים להשתמש במניפסט לבחירת אובייקטים, צרו קובץ מניפסט. שימוש במניפסט הוא אחת מהדרכים לבחור אובייקטים לעיבוד במשימה של פעולות רבות על פריטי אחסון.
יצירת משימה של פעולות רבות על פריטי אחסון
בקטע הזה מוסבר איך ליצור משימת פעולות אצווה באחסון.
כדי לקבל את ההרשאות שנדרשות ליצירת משימה של פעולות רבות על פריטי אחסון, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין לניהול אחסון (roles/storage.admin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקטים שרוצים לבצע עליהם פעולות באצווה.
הדף Bucket details נפתח עם הכרטיסייה Objects שנבחרה.
- לוחצים על יצירת פעולות בקבוצה.
- בחלונית בחירת פעולה, בוחרים את סוג הפעולה:
- ניהול השהיות של אובייקטים: בוחרים באפשרות השהיה זמנית או השהיה מבוססת-אירועים. מידע נוסף זמין במאמר השהיות אובייקטים.
- עדכון המטא-נתונים של האובייקט: כדי להוסיף מטא-נתונים של אובייקט, מבצעים את הפעולות הבאות:
- כדי להוסיף מטא-נתונים מותאמים אישית, מבצעים את השלבים הבאים:
- בשדה מפתח, מזינים שם למפתח.
- בשדה ערך, מזינים ערך למפתח.
- אופציונלי: לוחצים על + הוספת פריט כדי להוסיף עוד צמדי מפתח/ערך.
- כדי לעדכן מטא-נתונים עם מַפְתח קבוע:
- כדי להרחיב את הקטע עדכון מטא-נתונים של מפתח קבוע, לוחצים על החץ להרחבה .
- ברשימה Select one or more metadata to update, בוחרים את פריטי המטא-נתונים שרוצים לערוך.
- כדי להוסיף מטא-נתונים מותאמים אישית, מבצעים את השלבים הבאים:
- Update/Rotate encryption key: כדי להשתמש במפתח ההצפנה של האובייקטים או לעדכן אותו:
- ברשימה Select a Cloud KMS key, בוחרים מפתח הצפנה בניהול הלקוח (CMEK).
- אופציונלי: בוחרים באפשרות Switch project כדי לבחור מפתח מפרויקט אחר, או באפשרות Enter key manually כדי למלא את הפרטים.
- מחיקת אובייקטים: כדי למחוק אובייקטים, מבצעים את הפעולות הבאות:
- בדיקה אם התכונה "ניהול גרסאות של אובייקטים" מופעלת.
אם התכונה "ניהול גרסאות של אובייקטים" מופעלת, בוחרים באחת מאפשרויות המחיקה הבאות:
- בוחרים באפשרות מחיקת כל הגרסאות של האובייקטים כדי להסיר גם את הגרסאות הפעילות וגם את הגרסאות הלא עדכניות.
- כדי להסיר רק את הגרסה הפעילה, לוחצים על מחיקה סופית של גרסאות פעילות.
אם ניהול גרסאות של אובייקטים לא מופעל, כל האובייקטים שנבחרו למחיקה נמחקים באופן סופי.
- לוחצים על הבא.
- בחלונית Name operation & specify objects:
- בשדה Name, מזינים שם.
- אופציונלי: בשדה תיאור, מזינים תיאור.
- בקטע Specify objects, מגדירים קריטריון לעיבוד אובייקטים מהקטגוריה. בוחרים אחת מהאפשרויות הבאות:
- Select all objects: כולל את כל האובייקטים בקטגוריה.
- בחירת אובייקטים באמצעות מסנני תחיליות: כדי להגדיר את רשימת האובייקטים באמצעות מסנני תחיליות, מבצעים את הפעולות הבאות:
- בשדה Enter Prefixes of the objects to be included (הזנת קידומות של האובייקטים שייכללו), מזינים קידומת.
- אופציונלי: לוחצים על + הוספת קידומת כדי לציין קידומות נוספות.
- העלאת רשימות של אובייקטים באמצעות קובצי מניפסט בפורמט CSV: כדי להשתמש בקובץ מניפסט לבחירת אובייקטים, מבצעים את הפעולות הבאות:
- מעלים את קובץ ה-CSV של המניפסט לדלי. הקובץ הזה צריך להכיל כותרות לעמודות Bucket name (שם הקטגוריה), Object key (מפתח האובייקט) ו-Generation number (מספר הגנרציה).
- ברשימה Select manifest file mode, בוחרים אחת מהאפשרויות הבאות:
- אם בוחרים באפשרות Select a manifest file from Cloud Storage (בחירת קובץ מניפסט מ-Cloud Storage), לוחצים על Browse (עיון) בשדה Select a manifest file from Cloud Storage (בחירת קובץ מניפסט מ-Cloud Storage). בתיבת הדו-שיח Select object שמופיעה, עוברים לקובץ המניפסט בפורמט CSV ולוחצים על Select.
- אם בוחרים באפשרות 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) כדי להגדיר את אובייקטי היעד.
-
-
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של 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 קטגוריות מכל פרויקט, כל עוד כל קטגוריה רשומה לתוכנית של Storage Intelligence.
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. סוגי האחסון הנתמכים כוללים את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הוא המיקום של קובץ המניפסט. לדוגמה,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 של האובייקט שרוצים לעדכן.עדכון סוג האחסון (storage class) של אובייקטים:
"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משמש להפעלה או להשבתה של השהיית אובייקטים מבוססת-אירועים. ערך של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.
- ברשימת הפעולות, לוחצים על Operation ID של המשימה שרוצים לראות.
- בדף הפרטים מוצגים מדדים של המשרה בכרטיסייה סקירה כללית, כמו אובייקטים שזוהו, אובייקטים שעברו עיבוד ושגיאות שהתרחשו.
- בטבלה Error summary, בודקים את פרטי השגיאות בהפעלה או לוחצים על View in Cloud Logging כדי לראות את הרשומות.
- כדי לראות את הגדרות התצורה של המשימה, לוחצים על הכרטיסייה Configuration.
שורת הפקודה
-
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של מסוף 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.
-
הצגת רשימה של משימות לביצוע פעולות רבות על פריטי אחסון
בקטע הזה מוסבר איך להציג רשימה של משימות של פעולות רבות על פריטי אחסון בפרויקט.
כדי לקבל את ההרשאות שנדרשות להצגת רשימה של משימות לביצוע פעולות רבות על פריטי אחסון, בקשו מהאדמין להקצות לכם את התפקיד אדמין של אחסון (roles/storage.admin) ב-IAM בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
- ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמשויכת לפעולה.
- בדף Bucket details, לוחצים על הכרטיסייה Operations. בדף Operations מוצגת רשימה של פעולות פעילות.
שורת הפקודה
-
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של 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.
ביטול של פעולות רבות על פריטי אחסון
בקטע הזה מוסבר איך לבטל משימה של פעולות רבות על פריטי אחסון בפרויקט.
כדי לקבל את ההרשאות שנדרשות לביטול משימה של פעולות רבות על פריטי אחסון, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של אחסון (roles/storage.admin) ב-IAM בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמשויכת לפעולת האחסון באצווה שרוצים לבטל.
לוחצים על הכרטיסייה פעולות. בכרטיסייה הזו מוצגת רשימה של משימות לעיבוד באצווה. אפשר לבטל רק משימות שנמצאות בתהליך.
ברשימת הפעולות, בוחרים את המשימות שרוצים לבטל ולוחצים על Cancel.
שורת הפקודה
-
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של 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הוא השם של המשימה של הפעולות הרבות על פריטי אחסון.
מחיקת משימה של פעולות רבות על פריטי אחסון
בקטע הזה מוסבר איך למחוק משימה של פעולות רבות על פריטי אחסון.
כדי לקבל את ההרשאות שנדרשות למחיקת משימה של פעולות רבות על פריטי אחסון, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של אחסון (roles/storage.admin) ב-IAM בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על השם של הקטגוריה שמשויכת לפעולות רבות על פריטי אחסון שרוצים למחוק.
לוחצים על הכרטיסייה פעולות. בכרטיסייה הזו מוצגת רשימה של משימות לעיבוד באצווה. אפשר למחוק רק משימות שלא פועלות, כמו משימות שהסתיימו, נכשלו או בוטלו.
ברשימת הפעולות, בוחרים את המשימות שרוצים למחוק ולוחצים על Delete.
שורת הפקודה
-
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של מסוף 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.
מערכי הנתונים של Storage Insights נוצרים מתמונות מצב תקופתיות של המטא-נתונים של האחסון. לכל snapshot יש חותמת זמן שמראה מתי המטא-נתונים צולמו. כשמריצים משימה באצווה באמצעות מסננים מתקדמים, הזמן של תמונת המצב הזו קובע אילו אובייקטים וגרסאות יעובדו. כברירת מחדל, פעולות רבות על פריטי אחסון בוחרות אוטומטית את השעה האחרונה של קובץ snapshot. כדי למנוע פעולות על נתונים לא עדכניים, יצירת המשימה תיכשל אם ה-snapshot שנבחר ישן יותר מיומיים. במאמר פתרון בעיות בפעולות רבות על פריטי אחסון מוסבר איך לפתור את הבעיה.
שימוש בקובץ מניפסט: מריצים שאילתת BigQuery כדי ליצור קובץ מניפסט בפורמט CSV, ואז מספקים אותו למשימה.
השיטות מתוארות בקטעים הבאים.
שימוש במסננים מתקדמים
במקום ליצור קובץ מניפסט, אתם יכולים להשתמש במסננים של Common Expression Language (CEL) כדי לבחור אובייקטים ישירות על סמך שדות במערך הנתונים של Storage Insights. אפשר להריץ משימות בכמה קטגוריות בפרויקט. כשמשתמשים במסננים של קבוצת נתונים כדי לבחור אובייקטים, פעולות רבות על פריטי אחסון מתמקדות באובייקטים פעילים ועדכניים נכון לתמונת המצב של קבוצת הנתונים שנבחרה. לכן, המשימה כוללת רק אובייקטים עם ערך NULL גם ב-softDeleteTime וגם ב-timeDeleted בזמן של תמונת המצב.
שורת הפקודה
-
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של מסוף 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הוא השם של עבודת הפעולות הרבות על פריטי אחסון.
-
שימוש בקובץ מניפסט
כדי לקבל את ההרשאות שנדרשות ליצירת משימה של פעולות רבות על פריטי אחסון, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של אחסון (roles/storage.admin) ב-IAM בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת מניפסט באמצעות קבוצות נתונים של 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 שנבחרה.
- לוחצים על יצירת פעולות בקבוצה.
- בחלונית בחירת פעולה, בוחרים את סוג הפעולה:
- Manage object holds: בוחרים באפשרות Temporary hold או Event-based hold. מידע נוסף זמין במאמר בנושא השהיות אובייקטים.
- עדכון מטא-נתונים של אובייקט: כדי להוסיף מטא-נתונים של אובייקט, מבצעים את הפעולות הבאות:
- כדי להוסיף מטא-נתונים מותאמים אישית:
- בשדה מפתח, מזינים שם למפתח.
- בשדה ערך, מזינים ערך למפתח.
- אופציונלי: לוחצים על + הוספת פריט כדי להוסיף עוד צמדי מפתח/ערך.
- כדי לעדכן מטא-נתונים עם מַפְתח קבוע:
- כדי להרחיב את הקטע עדכון מטא-נתונים של מפתח קבוע, לוחצים על החץ להרחבה .
- ברשימה Select one or more metadata to update, בוחרים את פריטי המטא-נתונים שרוצים לערוך.
- כדי להוסיף מטא-נתונים מותאמים אישית:
- Update/Rotate encryption key: כדי להשתמש במפתח ההצפנה של האובייקטים או לעדכן אותו:
- ברשימה Select a Cloud KMS key, בוחרים מפתח הצפנה בניהול הלקוח (CMEK).
- אופציונלי: בוחרים באפשרות החלפת פרויקט כדי לבחור מפתח מפרויקט אחר, או באפשרות הזנת מפתח באופן ידני כדי למלא את הפרטים.
- מחיקת אובייקטים: כדי למחוק אובייקטים, מבצעים את הפעולות הבאות:
- בדיקה אם התכונה "ניהול גרסאות של אובייקטים" מופעלת.
אם התכונה "ניהול גרסאות של אובייקטים" מופעלת, בוחרים באחת מאפשרויות המחיקה הבאות:
- בוחרים באפשרות מחיקת כל הגרסאות של האובייקטים כדי להסיר גם את הגרסאות הפעילות וגם את הגרסאות הלא עדכניות.
- כדי להסיר רק את הגרסה הפעילה, לוחצים על מחיקה סופית של גרסאות פעילות.
אם ניהול גרסאות של אובייקטים לא מופעל, כל האובייקטים שנבחרו למחיקה נמחקים באופן סופי.
- לוחצים על הבא.
- בחלונית Name operation & specify objects:
- בשדה Name, מזינים שם.
- אופציונלי: בשדה תיאור, מזינים תיאור.
- בקטע Specify objects, בוחרים באפשרות Upload lists of objects using manifest CSV files, ואז מבצעים את הפעולות הבאות:
- מעלים את קובץ ה-CSV של המניפסט לדלי. הקובץ הזה צריך להכיל כותרות ל-Bucket name, ל-Object key ול-Generation number.
- ברשימה Select manifest file mode, בוחרים אחת מהאפשרויות הבאות:
- אם בוחרים באפשרות Select a manifest file from Cloud Storage (בחירת קובץ מניפסט מ-Cloud Storage), לוחצים על Browse (עיון) בשדה Select a manifest file from Cloud Storage (בחירת קובץ מניפסט מ-Cloud Storage). בתיבת הדו-שיח Select object שמופיעה, עוברים לקובץ המניפסט בפורמט CSV ולוחצים על Select.
- אם בוחרים באפשרות Select multiple manifest files using wildcard, מזינים את נתיב הקובץ בשדה Enter manifest file location using wildcard. לדוגמה,
bucket-name/folder/manifest_*.
- לוחצים על יצירה.
שורת הפקודה
-
מפעילים את Cloud Shell במסוף Google Cloud .
בחלק התחתון של מסוף 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. סוגי האחסון הנתמכים כוללים את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 למשימות של פעולות רבות על פריטי אחסון
משימות של פעולות רבות על פריטי אחסון מתעדות טרנספורמציות של אובייקטים ב-Cloud Storage ביומני הביקורת של Cloud Storage. כדי לעקוב אחרי הטרנספורמציות האלה, אפשר להשתמש ביומני הביקורת של Cloud ב-Cloud Storage. במאמר הפעלת יומני ביקורת מוסבר איך מפעילים יומני ביקורת. ברשומה ביומן הביקורת, שדה המטא-נתונים callUserAgent עם הערך StorageBatchOperations מציין שהטרנספורמציה בוצעה על ידי פעולות רבות על פריטי אחסון.