הקשרים של אובייקטים מאפשרים לכם לצרף צמדי מפתח/ערך בהתאמה אישית לאובייקטים ב-Cloud Storage. אתם יכולים להשתמש בהקשרים האלה כדי לסווג נתונים, לעקוב אחרי תהליכי עבודה של עיבוד ולהעשיר מטא-נתונים. ההקשרים המצורפים נשמרים כשמעתיקים, מרכיבים או משחזרים אובייקטים.
במאמר הזה מוסבר איך לצרף הקשרים לאובייקטים ב-Cloud Storage ולנהל אותם. למידע רקע, ראו הקשרים של אובייקטים.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירה ולניהול של הקשרי אובייקטים, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM באובייקט:
-
יצירת אובייקטים עם הקשרים:
יצירת אובייקטים באחסון (
roles/storage.objectCreator) -
לצרף, לעדכן, להציג ולמחוק הקשרים מאובייקטים, ולהציג ייצוגים מלאים של הקשרים (כולל נתונים מורחבים):
Storage Object User (
roles/storage.objectUser) -
צפייה במפתחות ובערכים של ההקשר:
צפייה באובייקטים באחסון (
roles/storage.objectViewer) -
הסרת הקשרים של אובייקטים במהלך פעולות של שכתוב, העתקה ויצירה:
בעלים של אובייקטים באחסון מדור קודם (
roles/storage.legacyObjectOwner)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי ליצור ולנהל הקשרים של אובייקטים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור ולנהל הקשרים של אובייקטים, נדרשות ההרשאות הבאות:
-
יוצרים אובייקט עם הקשרים של אובייקטים:
-
storage.objects.create -
storage.objects.createContext
-
-
צירוף, עדכון ומחיקה של הקשרים של אובייקטים:
-
storage.objects.update -
storage.objects.createContext -
storage.objects.updateContext -
storage.objects.deleteContext
-
-
הקשרים של הורדת אובייקטים:
storage.objects.dropContexts -
הצגת ההקשרים של האובייקטים:
-
storage.objects.get -
storage.objects.list
-
-
לראות את ההקשר המלא של אובייקט, כולל נתונים מורחבים (תצוגה מקדימה):
storage.objects.viewFullContext
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
דרישות למתן שמות לצמדי מפתח/ערך
גם המפתחות וגם הערכים של הקשרים מותאמים אישית צריכים לעמוד בדרישות הבאות:
צריך לכלול בין תו אחד ל-256 תווים (כולל).
חייב להתחיל בתו אלפאנומרי.
התו חייב להיות תו UTF-8 תקין. רוב התווים בתקן UTF-8 נתמכים, חוץ מהתווים הבאים:
גרש (
')מירכאות כפולות (
")לוכסן הפוך (
\)קו נטוי (
/)
מפתחות הקשר שמתחילים בקידומת
google:(לדוגמה,google:annotation:face-detector-v1) שמורים להקשרים שנוצרו על ידי Google. אי אפשר ליצור הקשרים חדשים עם הקידומתgoogle:או לשנות את הערכים שלהם. אם תנסו לעשות את זה, Cloud Storage יחזיר את השגיאהINVALID_ARGUMENT. כדי להסיר הקשרים עם הקידומתgoogle:, צריך למחוק אותם באמצעות הפרמטרdropContextGroupsבמהלך פעולת שכתוב.
צירוף הקשרים לאובייקטים חדשים
לצרף הקשרים לאובייקטים כשמעלים אובייקטים חדשים לקטגוריות של Cloud Storage. כל הקשר מורכב ממפתח ומערך.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
מצרפים הקשרים לאובייקט לפי השלבים.
שורת הפקודה
כדי לצרף הקשרים כשמעלים אובייקטים באמצעות הפקודה gcloud storage cp, משתמשים בדגל --custom-contexts:
gcloud storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME --custom-contexts=KEY=VALUE,...
כאשר:
-
OBJECT_LOCATIONהוא הנתיב המקומי לאובייקט. לדוגמה,Desktop/employees.txt. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה מעלים את האובייקט. לדוגמה,my-bucket. -
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
לחלופין, אפשר ליצור קובץ JSON שמכיל את ההקשרים שרוצים לצרף לאובייקטים, ולהשתמש בדגל --custom-contexts-file:
{ "KEY": { "value": "VALUE" }, ... }
כאשר:
-
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
כדי לצרף הקשרים כשמעלים ספריות באמצעות הפקודה gcloud storage rsync, משתמשים בדגל --custom-contexts או בדגל --custom-contexts-file:
gcloud storage rsync DIRECTORY_LOCATION gs://DESTINATION_BUCKET_NAME --recursive --custom-contexts=KEY=VALUE,...
כאשר:
-
DIRECTORY_LOCATIONהוא הנתיב המקומי לספרייה. לדוגמה,~/my_directory. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה מעלים את הספרייה. לדוגמה,my-bucket. -
KEYהוא מפתח ההקשר שצריך לצרף לאובייקטים. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
API בפורמט JSON
כדי לצרף הקשרים לאובייקטים כשמעלים אובייקטים חדשים, משתמשים באחת מהשיטות הבאות:
כחלק מהמטא-נתונים של האובייקט בפורמט JSON, כוללים את השדה contexts:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
כאשר:
-
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדי מפתח/ערך באובייקטcustom. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
צירוף או שינוי של הקשרים באובייקט קיים
אתם יכולים לצרף הקשרים חדשים לאובייקטים או לעדכן הקשרים קיימים בקטגוריות של Cloud Storage.
רק שירותי Google, כמו משימות להעשרת אובייקטים, יכולים ליצור ולצרף הקשרים עם נתונים מורחבים, שמשתמשים בקידומת המפתח השמורה google:. אי אפשר לצרף נתונים מורחבים להקשרים שמוגדרים על ידי המשתמש, ואי אפשר ליצור או לשנות מפתחות הקשר שמתחילים בקידומת google:. אם תנסו ליצור או לשנות מפתחות google:, תקבלו מ-Cloud Storage את השגיאה INVALID_ARGUMENT.
אם הקשר קיים כולל נתונים מורחבים, Cloud Storage שומר את ההקשר הזה באובייקט המעודכן במהלך פעולות עדכון ותיקון. אם מגדירים ערך הקשר ל-null, נמחקים רק הקשרים שאין להם נתונים מורחבים. כדי לראות נתונים מורחבים, עיינו בקטע הצגת ההקשר המלא של האובייקט. כדי להסיר הקשר עם נתונים מורחבים, כולל הקשרים עם הקידומת google:, צריך למחוק אותו באמצעות הפרמטר dropContextGroups במהלך פעולת שכתוב.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקט.
עוברים לאובייקט ולוחצים על Open object overflow menu.
לוחצים על עריכת ההקשרים.
בחלונית עריכת ההקשרים, מבצעים אחת מהפעולות הבאות:
הוספת הקשר חדש לאובייקט:
לוחצים על הוספת הקשר מותאם אישית.
בשדות Object context key ו-Object context value, מזינים צמד חדש של מפתח/ערך.
לוחצים על סיום.
אופציונלי: כדי להוסיף עוד הקשרים של אובייקטים, לוחצים על Add a custom context, חוזרים על השלבים הקודמים ולוחצים על Save.
עריכת הקשר של אובייקט:
לוחצים על ההקשר של האובייקט.
מעדכנים את השדה Object context key, את השדה Object context value או את שניהם.
לוחצים על סיום ואז על שמירה.
מחיקת הקשר של אובייקט:
לוחצים על Delete ואז על Save.
שורת הפקודה
משתמשים בפקודה gcloud storage objects update:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME CUSTOM_CONTEXTS_FLAG
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שאת ההקשר שלו רוצים לערוך. לדוגמה,my-bucket. -
OBJECT_NAMEהוא שם האובייקט. לדוגמה,employees.txt.
CUSTOM_CONTEXTS_FLAGהוא אחד מהדגלים הבאים:כדי להחליף את כל ההקשרים הקיימים, משתמשים ב-
--custom-contexts=KEY=VALUE,...או ב---custom-contexts-file=CUSTOM_CONTEXTS_FILE.כאשר:
-
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources. -
CUSTOM_CONTEXTS_FILEהוא הנתיב לקובץ JSON או YAML שמכיל את ההקשרים שרוצים לצרף לאובייקט.
-
כדי למחוק את כל ההקשרים הקיימים, משתמשים בדגל
--clear-custom-contexts.כדי להוסיף, לשנות או למחוק הקשרים ספציפיים, משתמשים בשילוב של
--update-custom-contexts=KEY=VALUE,...ו---remove-custom-contexts=KEY,....כאשר:
-
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט או למחוק ממנו. לדוגמה,Department. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר שרוצים לצרף לאובייקט או למחוק ממנו. לדוגמה,Human resources.
-
אם הפעולה בוצעה ללא שגיאות, התשובה תיראה כמו בדוגמה הבאה:
Patching gs://my-bucket/employees.txt#1560574162144861... Completed 1
ספריות לקוח
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Rust
API בפורמט JSON
להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON עם ההגדרות של האובייקט, שחייבות לכלול את שדות התצורה
contextsשל האובייקט.כדי להוסיף, לשנות או להחליף הקשרים קיימים, צריך להשתמש בפורמט הבא:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
כאשר:
-
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך באובייקטcustom. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
כדי למחוק את כל ההקשרים הקיימים, משתמשים בפורמט הבא:
{ "contexts": { "custom": null } }
כדי למחוק מפתח ספציפי מההקשר, צריך להשתמש בפורמט הבא:
{ "contexts": { "custom": { "KEY": null, ... } } }
כאשר:
KEYהוא מפתח ההקשר שרוצים למחוק מאובייקט. לדוגמה,Department. אפשר לציין כמה מפתחות למחיקה מהאובייקטcustom.-
משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של אובייקטPATCH:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
כאשר:
-
JSON_FILE_NAMEהוא הנתיב לקובץ שכולל את המידע על ההקשרים של האובייקטים. -
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שאת ההקשר שלו רוצים לערוך. לדוגמה,my-bucket. -
OBJECT_NAMEהוא שם האובייקט עם קידוד כתובת URL. לדוגמה,employees.txt.
-
אפשר גם להחליף את ההקשר של אובייקט באמצעות בקשת PUT Object. בקשת האובייקט PUT מחליפה גם מטא-נתונים אחרים של האובייקט. לכן, לא מומלץ להשתמש בבקשת האובייקט PUT.
הצגת ההקשרים של האובייקטים
כדי לראות את ההקשרים של אובייקט, אפשר להציג את המטא-נתונים של האובייקט או לתאר אובייקט ספציפי.
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקט עם ההקשרים שרוצים לראות.
עוברים לאובייקט ולוחצים על השם שלו.
בדף Object details, צמדי מפתח/ערך של כל ההקשרים המצורפים מופיעים בקטע Object contexts.
שורת הפקודה
משתמשים בפקודה gcloud storage objects describe:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט. לדוגמה,my-bucket. -
OBJECT_NAMEהוא שם האובייקט. לדוגמה,employees.txt.
אם הפעולה בוצעה ללא שגיאות, התגובה תיראה דומה לדוגמה הבאה:
bucket: my-bucket
contexts:
custom:
Department:
createTime: '2023-01-01T00:00:00.000000+00:00'
type: CUSTOM
updateTime: '2023-01-01T00:00:00.000000+00:00'
value: Human resources
google:annotation:face-detector-v1:
createTime: '2025-09-29T17:20:00.000000+00:00'
extendedDataTypeUrl: type.googleapis.com/google.protobuf.Struct
type: CUSTOM
updateTime: '2025-09-29T17:20:00.000000+00:00'
value: SUCCESS
name: employees.txt
ספריות לקוח
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Rust
API בפורמט JSON
להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של אובייקטGET:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה המכילה את האובייקט. לדוגמה,my-bucket. -
OBJECT_NAMEהוא שם האובייקט, מותאם לקידודי התווים שמתאימים לכתובות URL. לדוגמה,employees.txt.
אם הפעולה בוצעה ללא שגיאות, התגובה תיראה דומה לדוגמה הבאה:
{ "kind": "storage#object", "name": "employees.txt", "bucket": "my-bucket", "contexts": { "custom": { "Department": { "value": "Human resources", "createTime": "2023-01-01T00:00:00.000Z", "updateTime": "2023-01-01T00:00:00.000Z" }, "google:annotation:face-detector-v1": { "value": "SUCCESS", "createTime": "2025-09-29T17:20:00.000Z", "updateTime": "2025-09-29T17:20:00.000Z", "extendedDataTypeUrl": "type.googleapis.com/google.protobuf.Struct" } } } }
-
הצגת ההקשר המלא של האובייקט
כדי לראות הקשר אחד ואת הנתונים המורחבים שלו, משתמשים ב-method viewFullContext (גרסת טרום-השקה (Preview)).
API בפורמט JSON
כדי לאחזר הקשר מלא אחד (כולל נתונים מורחבים) לפי מפתח:
להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשתGETView Full Context:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/viewFullContext?contextKey=KEY"
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט. לדוגמה,my-bucket. -
OBJECT_NAMEהוא שם האובייקט עם קידוד כתובת URL. לדוגמה,employees.txt. -
KEYהוא מפתח ההקשר הספציפי שרוצים לאחזר. לדוגמה,google:annotation:face-detector-v1.
אם הפעולה בוצעה ללא שגיאות, התגובה תיראה דומה לדוגמה הבאה:
{ "kind": "storage#objectFullContext", "type": "CUSTOM", "key": "google:annotation:face-detector-v1", "value": "SUCCESS", "createTime": "2025-09-29T17:20:00.000Z", "updateTime": "2025-09-29T17:20:00.000Z", "extendedData": { "@type": "type.googleapis.com/google.protobuf.Struct", "value": { "modelName": "face-detector", "modelVersion": "v1", "faceAnnotationGroup": { "faceAnnotations": [ { "detectionConfidence": 0.9, "landmarkingConfidence": 0.8 } ] } } } }
-
סינון אובייקטים לפי הקשרים
סינון אובייקטים לפי קיום של מפתחות הקשר של אובייקטים או הערכים הספציפיים שלהם. סינון אובייקטים לפי הקשרים עוזר לאתר ולנהל קבוצות מסוימות של אובייקטים ביעילות. פרטים נוספים זמינים במאמר סינון אובייקטים לפי הקשרים.
ניהול הקשרים של אובייקטים במהלך פעולות על אובייקטים
כברירת מחדל, Cloud Storage שומר על ההקשרים של האובייקטים כשמעתיקים, משכתבים, יוצרים, מעבירים או משחזרים אובייקטים.
העתקת אובייקטים
כברירת מחדל, Cloud Storage שומר את ההקשרים של האובייקט מאובייקט המקור במהלך פעולת ההעתקה, גם אם אתם משנים מטא-נתונים אחרים. כדי לשנות הקשרים של אובייקטים במהלך פעולת העתקה, מבצעים את השלבים הבאים:
שורת הפקודה
כברירת מחדל, הפקודות gcloud storage cp, gcloud storage rsync ו-gcloud storage mv שומרות את ההקשרים של אובייקט המקור. כדי לשנות הקשרים במהלך הפעולות האלה, משתמשים באחד מהדגלים הבאים:
הדגל
--custom-contextsלהגדרת הקשרים חדשים לאובייקט היעד.הדגל
--clear-custom-contextsכדי למנוע צירוף של הקשרים מאובייקט המקור לאובייקט היעד.שילוב של הדגלים
--update-custom-contextsו---remove-custom-contextsכדי לשנות הקשרים ספציפיים מאובייקט המקור לפני שמצרפים אותם לאובייקט היעד.
כדי להגדיר הקשרים חדשים כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --custom-contexts=KEY=VALUE,...
כאשר:
-
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה,my-source-bucket. -
SOURCE_OBJECT_NAMEהוא שם האובייקט שרוצים להעתיק. לדוגמה,employees.txt. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה,my-destination-bucket. -
DESTINATION_OBJECT_NAMEהוא השם של אובייקט היעד. לדוגמה,employees-backup.txt. -
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
כדי להסיר את כל ההקשרים מאובייקט המקור כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
כאשר:
-
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה,my-source-bucket. -
SOURCE_OBJECT_NAMEהוא שם האובייקט שרוצים להעתיק. לדוגמה,pets/dog.png. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה,my-destination-bucket. -
DESTINATION_OBJECT_NAMEהוא השם של אובייקט היעד. לדוגמה,pets/cat.png.
כדי לשנות הקשרים ספציפיים מאובייקט המקור כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp עם --update-custom-contexts ו---remove-custom-contexts:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --update-custom-contexts=KEY=VALUE,... --remove-custom-contexts=KEY,...
כאשר:
-
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה,my-source-bucket. -
SOURCE_OBJECT_NAMEהוא שם האובייקט שרוצים להעתיק. לדוגמה,pets/dog.png. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה,my-destination-bucket. -
DESTINATION_OBJECT_NAMEהוא שם האובייקט ביעד. לדוגמה,pets/cat.png. -
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך או כמה מפתחות שמופרדים בפסיקים. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
API בפורמט JSON
כדי לשנות הקשרים כשמעתיקים אובייקט, צריך לכלול את המאפיין contexts.custom בגוף הבקשה:
להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON שמכיל את ההקשרים שרוצים לצרף לאובייקט היעד:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" } } } }
כאשר:
-
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
-
משתמשים ב-
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://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
כאשר:
-
JSON_FILE_NAMEהוא הנתיב לקובץ ה-JSON שכולל את המידע על ההקשרים של האובייקטים. -
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה,my-source-bucket. -
SOURCE_OBJECT_NAMEהוא השם של האובייקט שרוצים להעתיק, בקידודי תווים שמתאימים לכתובת URL. לדוגמה,employees.txt. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה,my-destination-bucket. -
DESTINATION_OBJECT_NAMEהוא השם בקידוד כתובת URL של אובייקט היעד. לדוגמה,employees-backup.txt.
-
כדי למחוק הקשרים של מקורות במהלך פעולת העתקה, משתמשים בפרמטר השאילתה dropContextGroups=custom בבקשה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
אם גוף הבקשה מכיל הקשרים עם הקידומת google:, אתם יכולים לשמור את המפתחות והערכים הקיימים מאובייקט המקור, אבל Cloud Storage דוחה מפתחות google: חדשים או ערכים ששונו.
כדי לשמור על ההקשרים, צריך להשמיט את המאפיין contexts מגוף הבקשה ולהחריג את הפרמטר של השאילתה dropContextGroups.
כתיבה מחדש של אובייקטים
כברירת מחדל, Cloud Storage שומר את ההקשרים של האובייקט המקורי במהלך פעולת שכתוב, גם אם אתם משנים מטא-נתונים אחרים. כדי לשנות הקשרים של אובייקטים במהלך פעולת שכתוב:
שורת הפקודה
הפקודות gcloud storage cp, gcloud storage rsync ו-gcloud storage mv מבצעות כתיבה מחדש באופן אוטומטי כשצריך, למשל כשמעתיקים אובייקטים בין מיקומים שונים או בין סוגי אחסון שונים. הפקודות gcloud storage cp ו-gcloud storage rsync יוצרות אובייקט מקור ואובייקט יעד, והפקודה gcloud storage mv יוצרת את אובייקט היעד ומסירה את אובייקט המקור. הפעולות האלה יוצרות אובייקט חדש, ולכן אפשר גם לשנות או לצרף הקשרים כחלק מאותה פקודה באמצעות כל אחד מהדגלים הבאים:
הדגל
--custom-contextsלהגדרת הקשרים חדשים לאובייקט היעד.הדגל
--clear-custom-contextsכדי למנוע צירוף של הקשרים מאובייקט המקור לאובייקט היעד.שילוב של הדגלים
--update-custom-contextsו---remove-custom-contextsכדי לשנות הקשרים ספציפיים מאובייקט המקור לפני שמצרפים אותם לאובייקט היעד.
כדי להגדיר הקשרים חדשים כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --custom-contexts=KEY=VALUE,...
כאשר:
-
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה,my-source-bucket. -
SOURCE_OBJECT_NAMEהוא שם האובייקט שרוצים להעתיק. לדוגמה,employees.txt. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה,my-destination-bucket. -
DESTINATION_OBJECT_NAMEהוא השם של אובייקט היעד. לדוגמה,employees-backup.txt. -
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
כדי להסיר את כל ההקשרים מאובייקט המקור כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
כאשר:
-
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה,my-source-bucket. -
SOURCE_OBJECT_NAMEהוא שם האובייקט שרוצים להעתיק. לדוגמה,pets/dog.png. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה,my-destination-bucket. -
DESTINATION_OBJECT_NAMEהוא שם האובייקט ביעד. לדוגמה,pets/cat.png.
כדי לשנות הקשרים ספציפיים מאובייקט המקור כשמעתיקים אובייקט, משתמשים בפקודה gcloud storage cp עם --update-custom-contexts ו---remove-custom-contexts:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --update-custom-contexts=KEY=VALUE,... --remove-custom-contexts=KEY,...
כאשר:
-
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים להעתיק. לדוגמה,my-source-bucket. -
SOURCE_OBJECT_NAMEהוא שם האובייקט שרוצים להעתיק. לדוגמה,pets/dog.png. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעתיק את האובייקט. לדוגמה,my-destination-bucket. -
DESTINATION_OBJECT_NAMEהוא שם האובייקט ביעד. לדוגמה,pets/cat.png. -
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך או כמה מפתחות שמופרדים בפסיקים. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
API בפורמט JSON
כדי לשנות את ההקשרים כשמשכתבים אובייקט, צריך לכלול את המאפיין contexts.custom בגוף הבקשה:
להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON שמכיל את ההקשרים שרוצים לצרף לאובייקט היעד:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" } } } }
כאשר:
-
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
-
משתמשים ב-
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://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
כאשר:
-
JSON_FILE_NAMEהוא הנתיב לקובץ ה-JSON שכולל את פרטי ההקשרים של האובייקטים. -
SOURCE_BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים לשכתב. לדוגמה,my-source-bucket. -
SOURCE_OBJECT_NAMEהוא השם של האובייקט שרוצים לשכתב, בקידוד כתובת URL. לדוגמה,employees.txt. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה כותבים מחדש את האובייקט. לדוגמה,my-destination-bucket. -
DESTINATION_OBJECT_NAMEהוא השם של אובייקט היעד, בקידוד התווים שמתאימים לכתובות URL. לדוגמה,employees-backup.txt.
-
כדי למחוק הקשרים של מקורות במהלך פעולת שכתוב, משתמשים בפרמטר השאילתה dropContextGroups=custom בבקשה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
אם גוף הבקשה מכיל הקשרים עם הקידומת google:, אתם יכולים לשמור את המפתחות והערכים הקיימים מאובייקט המקור, אבל Cloud Storage דוחה מפתחות google: חדשים או ערכים ששונו.
כדי לשמור על ההקשרים, צריך להשמיט את המאפיין contexts מגוף הבקשה ולהחריג את הפרמטר של השאילתה dropContextGroups.
הרכבת אובייקטים
כברירת מחדל, הפקודה gcloud storage objects compose וה-method compose של ה-API בפורמט JSON ממזגות את ההקשרים של אובייקטי המקור ומצרפות אותם לאובייקטי היעד. כדי לפתור התנגשויות, Cloud Storage נותן עדיפות להקשרים מאובייקטים של מקור שעובדו מאוחר יותר. למידע נוסף על ההתנהגות של הקשר האובייקט במהלך פעולת הרכבה, ראו הקשרים של אובייקטים מורכבים.
שורת הפקודה
כדי לציין הקשרים חדשים לאובייקט היעד כשיוצרים אובייקטים, משתמשים בדגל --contexts:
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/DESTINATION_OBJECT_NAME --contexts=KEY=VALUE,...
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקטים של המקור, ושבה נוצר אובייקט היעד. לדוגמה,my-bucket. -
SOURCE_OBJECT_1ו-SOURCE_OBJECT_2הם אובייקטים של המקור שצריך להרכיב. -
DESTINATION_OBJECT_NAMEהוא השם של אובייקט היעד שרוצים ליצור. לדוגמה,my-composite-object. -
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך, מופרדים בפסיקים. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה:Human resources.
כדי למנוע צירוף של הקשרי מקור לאובייקטים מורכבים, משתמשים בדגל --clear-custom-contexts:
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקטים של המקור, ושבה נוצר אובייקט היעד. לדוגמה,my-bucket. -
SOURCE_OBJECT_1ו-SOURCE_OBJECT_2הם אובייקטי המקור שצריך להרכיב. -
DESTINATION_OBJECT_NAMEהוא השם של אובייקט היעד שרוצים ליצור. לדוגמה,my-composite-object.
API בפורמט JSON
כדי לציין הקשרים חדשים לאובייקט היעד כשיוצרים אובייקטים, צריך לכלול הקשרים במאפיין destination של גוף הבקשה.
להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON שמכיל את גוף הבקשה:
{ "sourceObjects": [ {"name": "SOURCE_OBJECT_1"}, {"name": "SOURCE_OBJECT_2"} ], "destination": { "contentType": "text/plain", "contexts": { "custom": { "KEY": { "value": "VALUE" } } } } }
כאשר:
-
SOURCE_OBJECT_1ו-SOURCE_OBJECT_2הם אובייקטים של המקור שצריך להרכיב. -
KEYהוא מפתח ההקשר שרוצים לצרף לאובייקט. לדוגמה,Department. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
-
משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת אובייקטPOSTcompose:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/DESTINATION_OBJECT_NAME/compose"
כאשר:
-
JSON_FILE_NAMEהוא הנתיב לקובץ ה-JSON שכולל את גוף הבקשה. -
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקטים של המקור, ושבה נוצר אובייקט היעד. לדוגמה,my-bucket. -
DESTINATION_OBJECT_NAMEהוא השם של אובייקט היעד שרוצים ליצור. לדוגמה,my-composite-object.
-
כדי למנוע צירוף של הקשרי מקור לאובייקטים מורכבים, משתמשים בפרמטר השאילתה dropContextGroups=custom בבקשה:
להתקין ולהפעיל את ה-CLI של gcloud, שמאפשר ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON שמכיל את גוף הבקשה:
{ "sourceObjects": [ {"name": "SOURCE_OBJECT_1"}, {"name": "SOURCE_OBJECT_2"} ], "destination": { "contentType": "text/plain" } }
כאשר:
-
SOURCE_OBJECT_1ו-SOURCE_OBJECT_2הם אובייקטים של המקור שצריך להרכיב.
-
משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת אובייקטPOSTcompose:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/DESTINATION_OBJECT_NAME/compose?dropContextGroups=custom"
כאשר:
-
JSON_FILE_NAMEהוא הנתיב לקובץ ה-JSON שכולל את גוף הבקשה. -
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקטים של המקור, ושבה נוצר אובייקט היעד. לדוגמה,my-bucket. -
DESTINATION_OBJECT_NAMEהוא שם אובייקט היעד שרוצים ליצור. לדוגמה,my-composite-object.
-
ניהול הקשרים של אובייקטים בכמות גדולה
כדי לנהל הקשרים של מיליוני או מיליארדי אובייקטים באמצעות משימה אחת, אפשר להשתמש בפעולות רבות על פריטי אחסון. כדי ליצור משימה, מציינים את אובייקטי היעד באמצעות קובץ מניפסט או באמצעות תחיליות של אובייקטים. אחרי שמציינים את האובייקטים, יוצרים משימה של פעולת אצווה כדי לעדכן את ההקשרים של האובייקטים.
ניתוח הקשרים של אובייקטים ב-BigQuery
אם יש לכם מינוי פעיל ל-Storage Intelligence, אתם יכולים לשלוח שאילתות ולנתח הקשרים של אובייקטים ב-BigQuery. משתמשים ב-Object Contexts Catalog view (object_contexts_catalog_view) כדי לשלוח שאילתות למפתחות הקשר, לערכים ולמטענים ייעודיים (payloads) מובְנים של extendedData (כמו תוויות של תמונות, פנים שזוהו ותיבות תוחמות). תצוגת הקטלוג מתעדכנת כל 24 שעות.
לדוגמה, כדי למצוא את כל האובייקטים שבהם ציון הערה ספציפי חורג מסף מסוים:
SELECT t.project, t.bucket, t.name, t.generation, label FROM `PROJECT_ID.INSIGHTS_DATASET.object_contexts_catalog_view` AS t, UNNEST(t.contexts) AS context, UNNEST(JSON_QUERY_ARRAY(context.extendedData.labelAnnotationGroup.labelAnnotations)) AS label WHERE context.key = "google:annotation:label-detector-v1" AND FLOAT64(label.score) > 0.75;
מחליפים את:
-
PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים של Storage Insights. -
INSIGHTS_DATASET: השם של מערך הנתונים של Storage Insights.
למידע נוסף על הסכימה של תצוגת הקטלוג, ראו סכימת הקטלוג של הקשרי אובייקטים. דוגמאות נוספות לשאילתות מופיעות במאמר ניתוח הקשרים של אובייקטים.
המאמרים הבאים
- מידע על מאפייני ההקשר של אובייקטים זמין במאמרי העזרה של Cloud Storage API.