בדף הזה מוסבר איך להרכיב כמה אובייקטים ב-Cloud Storage לאובייקט אחד. בקשת הרכבה מקבלת בין 1 ל-32 אובייקטים ויוצרת אובייקט מורכב חדש. האובייקט המורכב הוא שרשור של אובייקטי המקור לפי הסדר שבו הם צוינו בבקשה.
האובייקטים במקור לא מושפעים, אלא אם מחליטים למחוק אותם במהלך תהליך ההרכבה.
שיקולי עלות לגבי אובייקטים זמניים
אם אובייקטי המקור אמורים להיות זמניים, חשוב לשים לב לשיקולי העלויות הבאים כשיוצרים אובייקטים:
אובייקטי המקור כפופים למשך אחסון מינימלי, בהתאם לסוג האחסון (storage class), ויכול להיות שיחולו עליהם עמלות מחיקה מוקדמת.
אם מופעלת מחיקה רכה או ניהול גרסאות של אובייקטים, מחיקת אובייקטי המקור אחרי סיום ההרכבה עלולה לגרום לאובייקטי המקור להימחק רכות או להפוך ללא עדכניים, מה שעלול לגרום לחיובים נוספים על אחסון.
כדי לצמצם את החיוב על אובייקטים זמניים, מוחקים אותם סופית במהלך תהליך ההרכבה באמצעות האפשרות
deleteSourceObjects. אובייקטים שנמחקים באמצעות האפשרות הזו לא כפופים לחיובים על מחיקה מוקדמת. בנוסף, אובייקטים שנמחקים באמצעות האפשרות הזו לא נשמרים באמצעות מחיקה רכה או ניהול גרסאות של אובייקטים, כי הנתונים נשמרים באובייקט המורכב.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לכם להרכבת אובייקטים, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM 'משתמש באובייקטים באחסון' (roles/storage.objectUser) בקטגוריה. התפקיד המוגדר מראש הזה מכיל את ההרשאות שנדרשות להרכבת אובייקטים. כדי לראות את ההרשאות הנדרשות, מרחיבים את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
storage.objects.createstorage.objects.delete- ההרשאה הזו נדרשת רק אם רוצים לתת לאובייקט המורכב שם זהה לשם של אובייקט שכבר קיים בקטגוריה.
storage.objects.getstorage.objects.list- ההרשאה הזו נדרשת רק אם רוצים להשתמש בתווים כלליים כדי להרכיב אובייקטים עם קידומת משותפת, בלי שתצטרכו לרשום כל אחד מהם בנפרד בפקודה של Google Cloud CLI.
אם רוצים להגדיר הגדרת שמירה לאובייקט שיוצרים, צריך גם את ההרשאה storage.objects.setRetention. כדי לקבל את ההרשאה הזו, צריך לבקש מהאדמין להקצות לכם את התפקיד 'אדמין של אובייקט אחסון' (roles/storage.objectAdmin) במקום התפקיד 'משתמש באובייקט אחסון' (roles/storage.objectUser).
אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים מוגדרים מראש אחרים או תפקידים בהתאמה אישית.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות.
יצירת אובייקט מורכב
שורת הפקודה
משתמשים בפקודה gcloud storage objects compose:
gcloud storage objects compose \
gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 \
gs://BUCKET_NAME/COMPOSITE_OBJECT_NAMEכאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקטים של המקור. -
SOURCE_OBJECT_1ו-SOURCE_OBJECT_2הם שמות האובייקטים של המקור שבהם צריך להשתמש בהרכבת האובייקט. -
COMPOSITE_OBJECT_NAMEהוא השם שנתתם לתוצאה של הרכבת האובייקט.
כדי למחוק את אובייקטי המקור כחלק מתהליך ההרכבה, מוסיפים את הדגל --delete-source-objects לפקודה הקודמת.
ספריות לקוח
C++
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
C#
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C# API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Go
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Go API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Node.js API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Python API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Ruby
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Ruby API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Rust
ממשקי API ל-REST
API בפורמט JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON שמכיל את הפרטים הבאים:
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" }, "deleteSourceObjects": DELETE_SOURCE_OBJECTS_BOOLEAN }
כאשר:
-
SOURCE_OBJECT_1ו-SOURCE_OBJECT_2הם שמות האובייקטים של המקור שבהם צריך להשתמש בהרכבת האובייקט. -
COMPOSITE_OBJECT_CONTENT_TYPEהוא סוג התוכן של האובייקט המורכב שמתקבל. - הערך של
DELETE_SOURCE_OBJECTS_BOOLEANמוגדר ל-trueאם רוצים למחוק את אובייקטי המקור כחלק מתהליך ההרכבה, או ל-falseאם רוצים לשמור את אובייקטי המקור. ערך ברירת המחדל הוא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://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/COMPOSITE_OBJECT_NAME/compose"
כאשר:
-
JSON_FILE_NAMEהוא שם הקובץ שיצרתם בשלב הקודם. -
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקטים של המקור. -
COMPOSITE_OBJECT_NAMEהוא השם שנתתם לתוצאה של הרכבת האובייקט.
-
אם הפעולה בוצעה ללא שגיאות, התגובה היא משאב אובייקט לאובייקט המורכב שמתקבל.
API בפורמט XML
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ XML שמכיל את הפרטים הבאים:
<ComposeRequest> <Component> <Name>SOURCE_OBJECT_1</Name> </Component> <Component> <Name>SOURCE_OBJECT_2</Name> </Component> </ComposeRequest>
כאשר:
-
SOURCE_OBJECT_1ו-SOURCE_OBJECT_2הם שמות האובייקטים של המקור שבהם צריך להשתמש בהרכבת האובייקט.
-
משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט XML באמצעות בקשת אובייקטPUTשכוללת את פרמטר מחרוזת השאילתהcompose:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: COMPOSITE_OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/BUCKET_NAME/COMPOSITE_OBJECT_NAME?compose"
כאשר:
-
XML_FILE_NAMEהוא שם הקובץ שיצרתם בשלב הקודם. -
COMPOSITE_OBJECT_CONTENT_TYPEהוא סוג התוכן של האובייקט המורכב שמתקבל. -
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקטים של המקור. -
COMPOSITE_OBJECT_NAMEהוא השם שנתתם לתוצאה של הרכבת האובייקט.
-
אם הפעולה בוצעה ללא שגיאות, מוחזר גוף תגובה ריק.
המאמרים הבאים
- מידע נוסף על הרכבת אובייקטים
- הסבר על השימוש בתנאים מוקדמים לבקשות כדי למנוע מרוץ תהליכים.