הקשרים של האובייקטים הם צמדי מפתח/ערך בהתאמה אישית שאפשר לצרף לאובייקטים ב-Cloud Storage. אתם יכולים להשתמש בהקשרים של אובייקטים כדי לסווג נתונים, לעקוב אחרי תהליכי עבודה של עיבוד ולעזור להוסיף מטא-נתונים לאובייקטים. ההקשרים האלה נשמרים כשמעתיקים, מרכיבים או משחזרים אובייקטים.
בדף הזה מוסבר איך לצרף הקשרים לאובייקטים ב-Cloud Storage ואיך לנהל אותם.
קבלת התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירה ולניהול של הקשרים של אובייקטים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים באובייקט:
-
יצירת אובייקטים עם הקשרים:
יצירת אובייקטים של אחסון (
roles/storage.objectCreator) -
צירוף, עדכון, צפייה ומחיקה של הקשרים מאובייקטים:
משתמש באובייקטים באחסון (
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
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
דרישות למתן שמות לצמדי מפתח/ערך
גם המפתחות וגם הערכים של הקשרים המותאמים אישית צריכים לעמוד בדרישות הבאות:
האורך צריך להיות בין תו אחד ל-256 תווים, כולל.
חייב להתחיל בתו אלפאנומרי.
חייב להיות תו תקף בקידוד UTF-8. רוב התווים בתקן UTF-8 נתמכים, למעט התווים הבאים:
גרש (
')מירכאות כפולות (
")לוכסן הפוך (
\)קו נטוי (
/)
צירוף הקשרים לאובייקטים חדשים
כשמעלים אובייקטים חדשים לקטגוריות של Cloud Storage, אפשר לצרף להם הקשרים. כל הקשר מורכב ממפתח ומערך.
המסוף
- במסוף Cloud de Confiance , נכנסים לדף 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.
המסוף
- במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את האובייקט.
עוברים לאובייקט ולוחצים על אפשרויות נוספות של האובייקט.
לוחצים על עריכת ההקשרים.
בחלונית עריכת הקשרים, מבצעים אחת מהפעולות הבאות:
הוספת הקשר אובייקט חדש:
לוחצים על הוספת הקשר מותאם אישית.
בשדות Object context key ו-Object context value, מזינים צמד חדש של מפתח וערך.
לוחצים על סיום.
אופציונלי: כדי להוסיף עוד הקשרים של אובייקטים, לוחצים על הוספת הקשר מותאם אישית, חוזרים על השלבים הקודמים ואז לוחצים על שמירה.
כדי לערוך הקשר של אובייקט:
לוחצים על ההקשר של האובייקט.
מעדכנים את השדה Object context key (מפתח הקשר של האובייקט), את השדה Object context value (ערך ההקשר של האובייקט) או את שניהם.
לוחצים על סיום ואז על שמירה.
מחיקת הקשר של אובייקט:
לוחצים על מחיקה ואז על שמירה.
שורת הפקודה
משתמשים בפקודה 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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
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.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
כאשר:
-
JSON_FILE_NAMEהוא הנתיב לקובץ שכולל את פרטי ההקשר של האובייקט. -
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים לערוך את ההקשר שלו. לדוגמה,my-bucket. -
OBJECT_NAMEהוא שם האובייקט עם קידוד כתובת URL. לדוגמה,employees.txt.
-
אפשר גם להחליף את ההקשר של אובייקט באמצעות בקשת PUTאובייקט. בקשת האובייקט PUT מחליפה גם מטא-נתונים אחרים של האובייקט. לכן, לא מומלץ להשתמש בבקשת האובייקט PUT.
הצגת הקשרים של אובייקטים
אפשר לראות את ההקשרים של אובייקט באמצעות הצגת המטא-נתונים של האובייקט או תיאור של אובייקט ספציפי.
המסוף
- במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על השם של הקטגוריה שמכילה את האובייקט שרוצים לראות את ההקשרים שלו.
עוברים לאובייקט ולוחצים על השם שלו.
בדף פרטי האובייקט, צמדי המפתח/ערך של כל ההקשרים המצורפים מפורטים בקטע הקשרים של האובייקט.
שורת הפקודה
משתמשים בפקודה 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:
Department:
createTime: '2023-01-01T00:00:00.000000+00:00'
type: CUSTOM
updateTime: '2023-01-01T00:00:00.000000+00:00'
value: Human resources
name: employees.txt
ספריות לקוח
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Rust
API בפורמט JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשה של אובייקטGET:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/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" } } } }
-
סינון אובייקטים לפי הקשרים
סינון אובייקטים לפי קיומם של מפתחות הקשר של האובייקט או לפי הערכים הספציפיים שלהם. סינון אובייקטים לפי הקשרים שלהם עוזר לאתר ולנהל קבוצות מסוימות של אובייקטים בצורה יעילה. לפרטים נוספים, אפשר לעיין במאמר בנושא סינון אובייקטים לפי הקשרים.
ניהול הקשרים של אובייקטים במהלך פעולות על אובייקטים
כברירת מחדל, 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.s3nsapis.fr/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.s3nsapis.fr/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
כדי לשמור על ההקשרים, משמיטים את המאפיין contexts.custom מגוף הבקשה ומוציאים את dropContextGroups=custom מהפרמטרים של השאילתה:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
מידע על אופן הפעולה של ההקשרים במהלך פעולות העתקה מופיע בפרמטר השאילתה 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 באמצעות בקשה של אובייקטPOSTrewrite:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/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.s3nsapis.fr/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
כדי לשמור על ההקשרים, משמיטים את המאפיין contexts.custom מגוף הבקשה ומוציאים את dropContextGroups=custom מפרמטרים של שאילתות:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
מידע על אופן הפעולה של הקשרים במהלך פעולות שכתוב מופיע בפרמטר השאילתה dropContextGroups.
הרכבת אובייקטים
כברירת מחדל, הפקודה gcloud storage objects compose והשיטה 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 באמצעות בקשה שלPOSTאובייקט ליצירת אימייל:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/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 באמצעות בקשה שלPOSTאובייקט ליצירת אימייל:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/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.
-
ניהול הקשרים של אובייקטים בכמות גדולה
כדי לנהל הקשרים של אובייקטים עבור מיליוני או מיליארדי אובייקטים באמצעות משימה אחת, אפשר להשתמש בפעולות אצווה ב-Storage. כדי ליצור עבודה, מציינים את האובייקטים שרוצים לנהל את ההקשרים שלהם. אפשר לעשות זאת על ידי מתן רשימה של אובייקטים בקובץ מניפסט או על ידי שימוש בקידומות של אובייקטים. אחרי שמציינים את רשימת האובייקטים, יוצרים משימה של פעולה בקבוצה כדי לעדכן את ההקשרים של האובייקטים.
המאמרים הבאים
- מידע על מאפייני ההקשר של האובייקט מופיע בתיעוד של Cloud Storage API.