ב-Cloud Storage אפשר להעביר נתוני סטרימינג לקטגוריה בלי לשמור אותם קודם בקובץ. האפשרות הזו שימושית כשרוצים להעלות נתונים אבל לא יודעים מה הגודל הסופי בתחילת ההעלאה, למשל כשיוצרים את נתוני ההעלאה מתהליך או כשדוחסים אובייקט בזמן אמת.
שימוש באימות סיכום ביקורת (checksum) במהלך סטרימינג
מכיוון שאפשר לקבל סיכום ביקורת (checksum) רק בבקשה הראשונית של העלאה, לעיתים קרובות אי אפשר להשתמש באימות סיכום ביקורת (checksum) של Cloud Storage במהלך הסטרימינג. תמיד מומלץ להשתמש באימות סיכום ביקורת (checksum), ואפשר לעשות זאת באופן ידני אחרי שמסתיימת העלאת הסטרימינג. אבל אימות לאחר סיום ההעברה, פירושו שאפשר יהיה לגשת לנתונים הפגומים בפרק הזמן הנדרש לאימות הפגמים והסרתם.
אם צריכים לאמת סיכום ביקורת (checksum) לפני השלמת ההעלאה והפיכת הנתונים לנגישים, לא משתמשים בהעלאה בסטרימינג. במקום זאת, כדאי להשתמש באפשרות העלאה אחרת שמבצעת אימות סיכום ביקורת (checksum) לפני השלמת האובייקט.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להעלאות בסטרימינג, צריך לבקש מהאדמין להקצות לכם אחד מהתפקידים הבאים:
אם ההעלאות כוללות נעילת שמירה של אובייקט, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM 'אדמין של אובייקטים באחסון' (
roles/storage.objectAdmin) בקטגוריה.בכל מקרה אחר, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM 'משתמש באובייקט אחסון' (
roles/storage.objectUser) בקטגוריה.
התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות להעלאות בסטרימינג ל-Cloud Storage. כדי לראות את ההרשאות הנדרשות, מרחיבים את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
storage.objects.createstorage.objects.delete- ההרשאה הזו נדרשת רק להעלאות שמחליפות אובייקט קיים.
storage.objects.list- ההרשאה הזו נדרשת רק לשימוש ב-Google Cloud CLI כדי לבצע את ההוראות שבדף הזה.
storage.objects.setRetention- ההרשאה הזו נדרשת רק להעלאות שכוללות נעילת שמירה של אובייקט.
אפשר לקבל את ההרשאות האלה גם באמצעות תפקידים אחרים שהוגדרו מראש או תפקידים בהתאמה אישית.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות.
שידור של העלאה
הדוגמאות הבאות מראות איך לבצע העלאה בסטרימינג מתהליך לאובייקט של Cloud Storage:
המסוף
מסוף Google Cloud Google Cloud לא תומך בהעלאות בסטרימינג. במקום זאת, משתמשים ב-CLI של gcloud.
שורת הפקודה
מעבירים את הנתונים לפקודה
gcloud storage cpומשתמשים במקף בשביל כתובת ה-URL של המקור:PROCESS_NAME | gcloud storage cp - gs://BUCKET_NAME/OBJECT_NAME
כאשר:
-
PROCESS_NAMEהוא שם התהליך שממנו אוספים נתונים. לדוגמה,collect_measurements. -
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט. לדוגמה,my_app_bucket. -
OBJECT_NAMEהוא שם האובייקט שנוצר מהנתונים. לדוגמה,data_measurements.
-
ספריות לקוח
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
כדי לבצע העלאה בסטרימינג, צריך להשתמש באחת מהשיטות הבאות:
העלאה שניתן להמשיך עם ההתאמות הבאות:
כשמעלים את נתוני הקובץ עצמו, משתמשים בהעלאה של מספר מקטעים.
מכיוון שאי אפשר לדעת מה גודל הקובץ הכולל עד שמגיעים למקטע הסופי, צריך להשתמש ב-
*בשביל גודל הקובץ הכולל בכותרתContent-Rangeשל מקטעי הביניים.לדוגמה, אם גודל המקטע הראשון שמעלים הוא 512KiB, הכותרת
Content-Rangeשל המקטע היאbytes 0-524287/*. אם בהעלאה נותרו 64,000 בייטים אחרי המקטע הראשון, צריך לשלוח מקטע סופי שמכיל את הבייטים הנותרים ויש לו כותרתContent-Rangeעם הערךbytes 524288-588287/588288.
העלאה בבקשה יחידה, עם ההתאמות הבאות:
לכלול את הכותרת
Transfer-Encoding: chunkedולהחריג את הכותרתContent-Length.יוצרים את הבקשה בהתאם למפרט ושולחים את נתוני האובייקט בחלקים כשהם זמינים.
API בפורמט XML
כדי לבצע העלאה בסטרימינג, צריך להשתמש באחת מהשיטות הבאות:
העלאה שניתן להמשיך עם ההתאמות הבאות:
כשמעלים את נתוני הקובץ עצמו, משתמשים בהעלאה של מספר מקטעים.
מכיוון שאי אפשר לדעת מה גודל הקובץ הכולל עד שמגיעים למקטע הסופי, צריך להשתמש ב-
*בשביל גודל הקובץ הכולל בכותרתContent-Rangeשל מקטעי הביניים.לדוגמה, אם גודל המקטע הראשון שמעלים הוא 512KiB, הכותרת
Content-Rangeשל המקטע היאbytes 0-524287/*. אם בהעלאה נותרו 64,000 בייטים אחרי המקטע הראשון, צריך לשלוח מקטע סופי שמכיל את הבייטים הנותרים ויש לו כותרתContent-Rangeעם הערךbytes 524288-588287/588288.
העלאה בבקשה יחידה, עם ההתאמות הבאות:
לכלול את הכותרת
Transfer-Encoding: chunkedולהחריג את הכותרתContent-Length.יוצרים את הבקשה בהתאם למפרט ושולחים את נתוני האובייקט בחלקים כשהם זמינים.
הערה: אי אפשר לבצע העלאה בסטרימינג באמצעות השיטה הזו אם הבקשה משתמשת בחתימה בכותרת
Authorization.
המאמרים הבאים
- ביצוע הורדה בסטרימינג.
- מידע נוסף על המרת קידוד שמבטלת דחיסה.
- מידע נוסף על העלאות והורדות.