בדף הזה נסביר איך להרכיב אובייקטים ב-Cloud Storage לאובייקט אחד. בקשת הרכבה מקבלת בין 1 ל-32 אובייקטים ויוצרת אובייקט מורכב חדש. האובייקט המורכב הוא שרשור האובייקטים של המקור לפי הסדר שבו צוינו בבקשה.
חשוב לשים לב לנקודות הבאות כשיוצרים אובייקטים:
- האובייקטים של המקור לא מושפעים מתהליך ההרכבה. אם מדובר באובייקטים זמניים, עליכם למחוק אותם אחרי שתהליך ההרכבה מסתיים ללא שגיאות.
- סוגי אחסון (storage class) אחרים כפופים לעמלות מחיקה מוקדמת, ולכן חשוב להשתמש תמיד ב-Standard Storage לאובייקטים זמניים.
- אם מופעלים בדלי תכונות להגנה על נתונים, מחיקות תכופות שקשורות לכתיבת הודעות יכולות להגדיל באופן משמעותי את החשבון שלכם על אחסון. מומלץ להשבית את המחיקה עם יכולת שחזור בדליים עם שיעורים גבוהים של פעולות יצירה. באמצעות ניהול גרסאות של אובייקטים, אפשר לציין את גרסאות האובייקטים כשמוחקים אובייקטים ממקור כדי למחוק אותם באופן סופי ולמנוע את הפיכתם לאובייקטים לא עדכניים.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לכם להרכבת אובייקטים, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-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הוא השם שנתתם לתוצאה של הרכבת האובייקט.
ספריות לקוח
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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
ממשקי API ל-REST
API ל-JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON שמכיל את הפרטים הבאים:
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" } }
כאשר:
משתמשים ב-
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הוא השם שנתתם לתוצאה של הרכבת האובייקט.
-
אם הפעולה בוצעה ללא שגיאות, מוחזר גוף תגובה ריק.
המאמרים הבאים
- מידע נוסף על הרכבת אובייקטים
- הסבר על השימוש בתנאים מוקדמים לבקשות כדי למנוע מרוץ תהליכים.