בדף הזה מוסבר איך להעלות אובייקטים ממערכת הקבצים המקומית לקטגוריה של Cloud Storage. אובייקט שהועלה מכיל את הנתונים שרוצים לשמור יחד עם המטא-נתונים שמשויכים אליהם. במאמר העלאות והורדות אפשר לקבל סקירה כללית של מושגים, כולל איך לבחור את שיטת ההעלאה האופטימלית בהתאם לגודל הקובץ.
לקבלת הוראות להעלאה מהזיכרון, אפשר לעיין במאמר העלאת אובייקטים מהזיכרון.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להעלאת אובייקטים לקטגוריה, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM 'משתמש באובייקטים באחסון' (roles/storage.objectUser) בקטגוריה. התפקיד המוגדר מראש הזה מכיל את ההרשאות שנדרשות להעלאת אובייקט לקטגוריה. כדי לראות את ההרשאות הנדרשות, מרחיבים את הקטע Required Permissions:
ההרשאות הנדרשות
storage.objects.createstorage.objects.delete- ההרשאה הזו נדרשת רק להעלאות שמחליפות אובייקט קיים.
storage.objects.get- ההרשאה הזו נדרשת רק אם אתם מתכננים להשתמש ב-Google Cloud CLI כדי לבצע את המשימות שמופיעות בדף הזה.
storage.objects.list- ההרשאה הזו נדרשת רק אם אתם מתכננים להשתמש ב-Google Cloud CLI כדי לבצע את המשימות שמופיעות בדף הזה. ההרשאה הזו נדרשת גם אם רוצים להשתמש במסוף Google Cloud כדי לאמת את האובייקטים שהועלו.
אם אתם מתכננים להשתמש במסוף Google Cloud כדי לבצע את המשימות שמופיעות בדף הזה, תצטרכו גם את ההרשאה storage.buckets.list, שלא נכללת בתפקיד 'משתמש באובייקט אחסון' (roles/storage.objectUser). כדי לקבל את ההרשאה הזו, צריך לבקש מהאדמין להקצות לכם את התפקיד 'אדמין לניהול אחסון' (roles/storage.admin) בפרויקט.
אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים אחרים שהוגדרו מראש או תפקידים בהתאמה אישית.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות.
העלאת אובייקט לקטגוריה
כדי להעלות אובייקט לקטגוריה:
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שאליה רוצים להעלות אובייקט.
בכרטיסייה Objects של הקטגוריה, מבצעים אחת מהפעולות הבאות:
גוררים קבצים משולחן העבודה או ממנהל הקבצים לחלונית הראשית במסוף Google Cloud .
לוחצים על העלאה > העלאת קבצים, בוחרים את הקבצים שרוצים להעלות בתיבת הדו-שיח שמופיעה ולוחצים על פתיחה.
במאמר פתרון בעיות מוסבר איך מקבלים מידע מפורט על שגיאות בנושא פעולות ב-Cloud Storage שנכשלו במסוף Google Cloud .
שורת הפקודה
משתמשים בפקודה gcloud storage cp:
gcloud storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME
כאשר:
OBJECT_LOCATIONהוא הנתיב המקומי לאובייקט. לדוגמה,Desktop/dog.png.
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה מעלים את האובייקט. לדוגמה,my-bucket.
אם הפעולה בוצעה ללא שגיאות, התשובה תיראה כמו בדוגמה הבאה:
Completed files 1/1 | 164.3kiB/164.3kiB
אפשר להגדיר מטא-נתונים של אובייקט עם מפתח קבוע או בהתאמה אישית כחלק מהעלאת האובייקט, באמצעות דגלי פקודה.
ספריות לקוח
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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Terraform
אפשר להשתמש במשאב של Terraform כדי להעלות אובייקט.
צריך לציין את content או את source.
ממשקי API ל-REST
API בפורמט JSON
ה-API בפורמט JSON מבחין בין העלאות מדיה, שבהן הבקשה כוללת רק נתוני האובייקט, לבין העלאות מרובות חלקים ב-API בפורמט JSON, שבהן הבקשה כוללת גם את נתוני האובייקט וגם את המטא-נתונים של האובייקט.
העלאת מדיה (העלאה של בקשה אחת ללא מטא-נתונים של האובייקט)
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת אובייקטPOST:curl -X POST --data-binary @OBJECT_LOCATION \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME"כאשר:
-
OBJECT_LOCATIONהוא הנתיב המקומי לאובייקט. לדוגמה,Desktop/dog.png. -
OBJECT_CONTENT_TYPEהוא סוג התוכן של האובייקט. לדוגמה,image/png. -
BUCKET_NAMEהוא שם הקטגוריה שאליה מעלים את האובייקט. לדוגמה,my-bucket. -
OBJECT_NAMEהוא השם שרוצים לתת לאובייקט, מותאם לקידודי התווים שמתאימים לכתובות URL. לדוגמה,pets/dog.pngיותאם לקידודי התווים שמתאימים לכתובות URL באופן הבא:pets%2Fdog.png.
-
העלאה מרובת חלקים של API בפורמט JSON (העלאה עם בקשה אחת שכוללת מטא-נתונים של אובייקט)
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ
multipart/relatedשמכיל את הפרטים הבאים:--BOUNDARY_STRING Content-Type: application/json; charset=UTF-8 OBJECT_METADATA --BOUNDARY_STRING Content-Type: OBJECT_CONTENT_TYPE OBJECT_DATA --BOUNDARY_STRING--
כאשר:
-
BOUNDARY_STRINGהיא מחרוזת שמגדירים שמזהה את החלקים השונים של הקובץ מרובה החלקים. לדוגמה,separator_string. -
OBJECT_METADATAהוא המטא-נתונים שרוצים לכלול בקובץ, בפורמט JSON. לכל הפחות, הקטע הזה צריך לכלול את המאפייןnameשל האובייקט, לדוגמה{"name": "myObject"}. -
OBJECT_CONTENT_TYPEהוא סוג התוכן של האובייקט. לדוגמה,text/plain. -
OBJECT_DATAהוא הנתונים בשביל האובייקט.
לדוגמה:
--separator_string Content-Type: application/json; charset=UTF-8 {"name":"my-document.txt"} --separator_string Content-Type: text/plain This is a text file. --separator_string---
משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשת אובייקטPOST:curl -X POST --data-binary @MULTIPART_FILE_LOCATION \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: multipart/related; boundary=BOUNDARY_STRING" \ -H "Content-Length: MULTIPART_FILE_SIZE" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=multipart"כאשר:
-
MULTIPART_FILE_LOCATIONהוא הנתיב המקומי לקובץ מרובה החלקים שנוצר בשלב 2. לדוגמה,Desktop/my-upload.multipart. -
BOUNDARY_STRINGהוא מחרוזת הגבולות שיצרתם בשלב 2. לדוגמה,my-boundary. -
MULTIPART_FILE_SIZEהוא הגודל הכולל בבייטים של הקובץ מרובה החלקים שיצרתם בשלב 2. לדוגמה,2000000. -
BUCKET_NAMEהוא שם הקטגוריה שאליה מעלים את האובייקט. לדוגמה,my-bucket.
-
אם הבקשה תתבצע בהצלחה, השרת יחזיר את קוד הסטטוס 200 OK של HTTP יחד עם המטא-נתונים של הקובץ.
API בפורמט XML
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט XML באמצעות בקשת אובייקטPUT:curl -X PUT --data-binary @OBJECT_LOCATION \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"כאשר:
-
OBJECT_LOCATIONהוא הנתיב המקומי לאובייקט. לדוגמה,Desktop/dog.png. -
OBJECT_CONTENT_TYPEהוא סוג התוכן של האובייקט. לדוגמה,image/png. -
BUCKET_NAMEהוא שם הקטגוריה שאליה מעלים את האובייקט. לדוגמה,my-bucket. -
OBJECT_NAMEהוא השם שרוצים לתת לאובייקט, מותאם לקידודי התווים שמתאימים לכתובות URL. לדוגמה,pets/dog.pngיותאם לקידודי התווים שמתאימים לכתובות URL באופן הבא:pets%2Fdog.png.
-
אפשר להגדיר מטא-נתונים של אובייקט נוספים כחלק מהעלאת האובייקט בכותרות של הבקשה, באותו אופן שבו קבוצת הדוגמאות הקודמת מגדירה את Content-Type. כשעובדים עם API בפורמט XML, אפשר להגדיר מטא-נתונים רק בזמן כתיבת האובייקט, למשל בהעלאה, בהעתקה או בהחלפה של האובייקט. למידע נוסף, עיינו במאמר עריכת מטא-נתונים של אובייקטים.
העלאת התוכן של ספרייה לקטגוריה
כדי להעתיק את התוכן של ספרייה לקטגוריה:
שורת הפקודה
משתמשים בפקודה gcloud storage rsync עם הדגל --recursive:
gcloud storage rsync --recursive LOCAL_DIRECTORY gs://DESTINATION_BUCKET_NAME/FOLDER_NAME
כאשר:
LOCAL_DIRECTORYהוא הנתיב לספרייה שמכילה את הקבצים שרוצים להעלות כאובייקטים. לדוגמה,~/my_directory.
DESTINATION_BUCKET_NAMEהוא שם הקטגוריה שאליה רוצים להעלות אובייקטים. לדוגמה,my-bucket.
FOLDER_NAME(אופציונלי) הוא שם התיקייה בקטגוריה שאליה רוצים להעלות אובייקטים. לדוגמה,my-folder.
אם הפעולה בוצעה ללא שגיאות, התשובה תיראה כמו בדוגמה הבאה:
Completed files 1/1 | 5.6kiB/5.6kiB
אפשר להגדיר מטא-נתונים של אובייקט עם מפתח קבוע או בהתאמה אישית כחלק מהעלאת האובייקט, באמצעות דגלי פקודה.
המאמרים הבאים
- מידע על הדרישות בנוגע למתן שמות לאובייקטים.
- מידע נוסף על שימוש בתיקיות לארגון האובייקטים
- העברת אובייקטים ממכונה של Compute Engine.
- העברת נתונים מספקים של שירותי ענן או ממקורות אונליין אחרים, כמו רשימות של כתובות URL.
- איך קובעים למי תהיה גישה לאובייקטים ולקטגוריות.
- הצגת המטא-נתונים של האובייקט, כולל כתובת ה-URL של האובייקט.
נסו בעצמכם
אנחנו ממליצים למשתמשים חדשים ב-Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של Cloud Storage בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300 $להרצה, לבדיקה ולפריסה של עומסי העבודה.
להתנסות ב-Cloud Storage בחינם