בדף הזה מוסבר איך לצרף הקשרים לאובייקטים ב-Cloud Storage ולנהל אותם בצורה של צמדי מפתח/ערך.
קבלת התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירה ולניהול של הקשרים של אובייקטים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים באובייקט:
-
יצירת אובייקטים עם הקשרים:
Storage Object Creator (
roles/storage.objectCreator) -
צירוף, עדכון, צפייה ומחיקה של הקשרים מאובייקטים:
משתמש באובייקטים באחסון (
roles/storage.objectUser) -
צפייה במפתחות וערכים של הקשר שמצורפים לאובייקטים:
צפייה באובייקטים באחסון (
roles/storage.objectViewer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות ליצירה ולניהול של הקשרים של אובייקטים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור ולנהל הקשרים של אובייקטים, צריך את ההרשאות הבאות:
-
יצירת אובייקט עם הקשרים של האובייקט:
-
storage.objects.create -
storage.objects.createContext
-
-
צירוף, עדכון ומחיקה של הקשרים של אובייקטים:
-
storage.objects.update -
storage.objects.createContext -
storage.objects.updateContext -
storage.objects.deleteContext
-
-
הצגת הקשרים של האובייקט:
-
storage.objects.get -
storage.objects.list
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
צירוף הקשרים לאובייקטים חדשים
כשמעלים אובייקטים חדשים לקטגוריות של Cloud Storage, אפשר לצרף להם הקשרים. כל הקשר מורכב ממפתח ומערך.
שורת הפקודה
כדי לצרף הקשרים כשמעלים אובייקטים באמצעות הפקודה gcloud alpha storage cp, משתמשים בדגל --custom-contexts:
gcloud alpha storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME --custom-contexts=KEY=VALUE,...
כאשר:
-
OBJECT_LOCATIONהוא הנתיב המקומי לאובייקט. לדוגמה,Desktop/dog.png. -
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה מעלים את האובייקט. לדוגמה,my-bucket. -
KEYהוא מפתח ההקשר לצירוף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך ולהפריד ביניהם באמצעות פסיקים. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
אפשר גם ליצור קובץ JSON שמכיל את ההקשרים שרוצים לצרף לאובייקטים, ולהשתמש בדגל --custom-contexts-file:
{ "KEY": { "value": "VALUE" }, ... }
כאשר:
-
KEYהוא מפתח ההקשר לצירוף לאובייקט. לדוגמה,Department. אפשר לציין כמה צמדים של מפתח/ערך. -
VALUEהוא הערך שרוצים לשייך למפתח ההקשר. לדוגמה,Human resources.
כדי לצרף הקשרים כשמעלים ספריות באמצעות הפקודה gcloud alpha storage rsync, משתמשים בדגל --custom-contexts או בדגל --custom-contexts-file:
gcloud alpha 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.
שורת הפקודה
משתמשים בפקודה gcloud alpha storage objects update:
gcloud alpha storage objects update gs://BUCKET_NAME/OBJECT_NAME CUSTOM_CONTEXTS_FLAG
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים לערוך את ההקשר שלו. לדוגמה,my-bucket. -
OBJECT_NAMEהוא שם האובייקט. לדוגמה,pets/dog.png.
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/pets/dog.png#1560574162144861... Completed 1
ספריות לקוח
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
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. לדוגמה,pets/dog.pngיותאם לקידודי התווים שמתאימים לכתובות URL באופן הבא:pets%2Fdog.png.
-
אפשר גם להחליף את ההקשר של אובייקט באמצעות בקשת PUTאובייקט. בקשת האובייקט PUT מחליפה גם מטא-נתונים אחרים של האובייקט. לכן, לא מומלץ להשתמש בבקשת האובייקט PUT.
הצגת הקשרים של אובייקטים
אפשר לראות את ההקשרים של אובייקט באמצעות הצגת המטא-נתונים של האובייקט או תיאור של אובייקט ספציפי.
שורת הפקודה
משתמשים בפקודה gcloud alpha storage objects describe:
gcloud alpha storage objects describe gs://BUCKET_NAME/OBJECT_NAME
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים לצפות בהקשר שלו. לדוגמה,my-bucket. -
OBJECT_NAMEהוא שם האובייקט שרוצים לצפות בהקשר שלו. לדוגמה,pets/dog.png.
אם הפעולה בוצעה ללא שגיאות, התגובה תיראה דומה לדוגמה הבאה:
bucket: my-bucket
contexts:
Department:
createTime: '2023-01-01T00:00:00.000000+00:00'
type: CUSTOM
updateTime: '2023-01-01T00:00:00.000000+00:00'
value: HR
DataClassification:
createTime: '2023-01-01T00:00:00.000000+00:00'
type: CUSTOM
updateTime: '2023-01-01T00:00:00.000000+00:00'
value: Confidential
name: employees.txt
ספריות לקוח
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java 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://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים לצפות בהקשר שלו. לדוגמה,my-bucket. -
OBJECT_NAMEהוא השם של האובייקט שרוצים לצפות בהקשר שלו, בקידודי תווים שמתאימים לכתובות URL. לדוגמה,pets/dog.pngיותאם לקידודי התווים שמתאימים לכתובות URL באופן הבא:pets%2Fdog.png.
אם הפעולה בוצעה ללא שגיאות, התגובה תיראה דומה לדוגמה הבאה:
{ "kind": "storage#object", "name": "employees.txt", "bucket": "my-bucket", "contexts": { "custom": { "Department": { "value": "HR", "createTime": "2023-01-01T00:00:00.000Z", "updateTime": "2023-01-01T00:00:00.000Z" }, "DataClassification": { "value": "Confidential", "createTime": "2023-01-01T00:00:00.000Z", "updateTime": "2023-01-01T00:00:00.000Z" } } } }
-
סינון אובייקטים לפי הקשרים
סינון אובייקטים לפי קיומם של מפתחות הקשר של האובייקט או לפי הערכים הספציפיים שלהם. סינון אובייקטים לפי הקשרים שלהם עוזר לאתר ולנהל קבוצות מסוימות של אובייקטים בצורה יעילה. לפרטים נוספים, אפשר לעיין במאמר בנושא סינון אובייקטים לפי הקשרים.
ניהול הקשרים של אובייקטים במהלך פעולות על אובייקטים
ההקשרים של האובייקטים נשמרים כברירת מחדל כשמעתיקים, משכתבים, מרכיבים, מעבירים או משחזרים אובייקטים. אפשר גם לשנות את ההקשרים במהלך פעולות ההעתקה, הכתיבה מחדש והחיבור.
שורת הפקודה
הפקודה gcloud alpha storage cp, הפקודה gcloud alpha storage rsync והפקודה gcloud alpha storage mv שומרות על ההקשרים מאובייקט המקור כברירת מחדל. כדי לשנות את ההקשרים במהלך הפעולות האלה, משתמשים באחד מהדגלים הבאים:
- הדגלים
--custom-contextsאו--custom-contexts-fileכדי להגדיר הקשרים חדשים לאובייקט היעד. - הדגל
--clear-custom-contextsכדי למנוע צירוף הקשרים מאובייקט המקור לאובייקט היעד. - שילוב של הדגלים
--update-custom-contextsו---remove-custom-contextsכדי לשנות הקשרים ספציפיים מאובייקט המקור לפני שמצרפים אותם לאובייקט היעד.
הפקודה gcloud alpha storage objects compose ממזגת הקשרים מאובייקטי המקור ומצרפת אותם לאובייקטי היעד כברירת מחדל. ב-Cloud Storage, כדי לפתור קונפליקטים, המערכת נותנת עדיפות להקשרים מאובייקטים במקור שעברו עיבוד מאוחר יותר. מידע נוסף על התנהגות ההקשר של האובייקט במהלך פעולת הרכבה זמין במאמר הקשרים של אובייקטים מורכבים. אפשר גם לציין הקשרים חדשים לאובייקט היעד באמצעות הדגלים --custom-contexts או --custom-contexts-file.
API ל-JSON
כדי לשנות הקשרים במהלך פעולת העתקה או שכתוב של אובייקט, צריך לכלול את המאפיין
contexts.customבגוף הבקשה. אם לא כוללים את המאפיין הזה, ההקשרים מאובייקט המקור נשמרים כברירת מחדל.כשמרכיבים אובייקטים, ההקשרים מאובייקטי המקור מתמזגים עם אובייקט היעד כברירת מחדל. Cloud Storage פותר קונפליקטים על ידי מתן עדיפות להקשרים מאובייקטים של מקור שעברו עיבוד מאוחר יותר. למידע נוסף על התנהגות של הקשר של האובייקט במהלך פעולת הרכבה, אפשר לעיין במאמר הקשרים של אובייקטים מורכבים. אפשר גם לציין הקשרים חדשים לאובייקט היעד במאפיין
destination.contexts.custom.
המאמרים הבאים
- מידע על מאפייני ההקשר של האובייקט מופיע במאמרי העזרה של Cloud Storage API.