Cloud Storage תומך בקריאת סטרימינג של אובייקטים, שמאפשרת לאפליקציה או לתהליך לצרוך סטרימינג של בייטים של אובייקטים בזמן אמת ישירות דרך חיבור הרשת, בלי לשמור עותק של הנתונים בדיסק מקומי או באחסון מתמיד.
אם רוצים להוריד אובייקט ולשמור אותו במערכת הקבצים המקומית, אפשר לעיין במאמר בנושא הורדת אובייקטים כקבצים.
שימוש באימות סיכום ביקורת (checksum) במהלך קריאות של סטרימינג
לא כדאי להשתמש בקריאה בסטרימינג אם צריך אימות סיכום ביקורת (checksum) לפני עיבוד הנתונים. מכיוון שבדרך כלל קריאות בסטרימינג משתמשות בכותרת HTTP Range, Cloud Storage לא מחזיר סיכומי ביקורת שרלוונטיים רק לחלק שרירותי של נתוני האובייקט שהתבקש. סיכומי ביקורת (checksums) של השרת מאמתים את האובייקט כולו, כלומר יכול להיות שנתונים פגומים ייקראו ויעברו עיבוד לפני שהסטרימינג יסתיים ויאומת.
התפקידים הנדרשים
כדי לקבל את ההרשאות הנדרשות לקריאות של סטרימינג, צריך לבקש מהאדמין להקצות לכם את התפקיד 'צפייה באובייקט אחסון' (roles/storage.objectViewer) בקטגוריה.
התפקיד הזה מכיל את ההרשאה שנדרשת לקריאת נתונים בסטרימינג. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
storage.objects.get
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים מוגדרים מראש אחרים או בתפקידים בהתאמה אישית.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים בקטגוריות.
סטרימינג של קריאת אובייקט
הדוגמאות הבאות מראות איך לבצע קריאה בסטרימינג מאובייקט של Cloud Storage לתהליך:
המסוף
מסוף Google Cloud Google Cloud לא תומך בקריאות בסטרימינג. במקום זאת, משתמשים ב-Google Cloud CLI.
שורת הפקודה
מריצים את הפקודה
gcloud storage cpתוך שימוש במקף ככתובת ה-URL של היעד, ואז מעבירים את הנתונים לתהליך:gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME - | PROCESS_NAME
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה המכילה את האובייקט. לדוגמה,my_app_bucket. -
OBJECT_NAMEהוא שם האובייקט שמעבירים בסטרימינג לתהליך. לדוגמה,data_measurements. -
PROCESS_NAMEהוא השם של התהליך שאליו מזינים את הנתונים. לדוגמה,analyze_data.
-
אפשר גם להעביר נתונים בסטרימינג מאובייקט של Cloud Storage לפקודת Linux רגילה, כמו sort:
gcloud storage cp gs://my_app_bucket/data_measurements - | sort
ספריות לקוח
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
כדי לבצע קריאה בסטרימינג, צריך לפעול לפי ההוראות להורדת אובייקט בהתאם לשיקולים הבאים:
לפני שמתחילים בקריאה, מאחזרים את המטא-נתונים של האובייקט ושומרים את מספר הגנרציה שלו. צריך לכלול את מספר הגנרציה הזה בכל אחת מהבקשות, כדי להבטיח שלא תתבצע קריאה של נתונים משתי גנרציות שונות במקרה שבו הגרסה המקורית מוחלפת.
משתמשים בכותרת
Rangeבבקשה כדי לאחזר חלק מהאובייקט הכולל, שאותו אפשר לשלוח לתהליך מקומי.ממשיכים לשלוח בקשות לחלקים עוקבים של האובייקט, עד שכל האובייקט מאוחזר.
API בפורמט XML
כדי לבצע קריאה בסטרימינג, צריך לפעול לפי ההוראות להורדת אובייקט בהתאם לשיקולים הבאים:
לפני שמתחילים בקריאה, מאחזרים את המטא-נתונים של האובייקט ושומרים את מספר הגנרציה שלו. צריך לכלול את מספר הגנרציה הזה בכל אחת מהבקשות, כדי להבטיח שלא תתבצע קריאה של נתונים משתי גנרציות שונות במקרה שבו הגרסה המקורית מוחלפת.
משתמשים בכותרת
Rangeבבקשה כדי לאחזר חלק מהאובייקט הכולל, שאותו אפשר לשלוח לתהליך מקומי.ממשיכים לשלוח בקשות לחלקים עוקבים של האובייקט, עד שכל האובייקט מאוחזר.