Package google.bytestream

אינדקס

ByteStream

Byte Stream API מאפשר ללקוח לקרוא ולכתוב זרם של בייטים במשאב וממנו. למשאבים יש שמות, והשמות האלה מסופקים בקריאות ל-API שבהמשך כדי לזהות את המשאב שנקרא או נכתב אליו.

כל ההטמעות של Byte Stream API מייצאות את הממשק שמוגדר כאן:

  • Read(): קריאת התוכן של משאב.

  • Write(): כותב את התוכן של משאב. הלקוח יכול להתקשר ל-Write() כמה פעמים באמצעות אותו משאב, ויכול לבדוק את סטטוס הכתיבה באמצעות קריאה ל-QueryWriteStatus().

ממשק ByteStream API לא מספק דרך ישירה לגשת למטא-נתונים המשויכים למשאב או לשנות אותם.

השגיאות שהוחזרו על ידי השירות נמצאות במרחב השגיאות הקנוני של Google.

כתיבה

rpc Write(WriteRequest) returns (WriteResponse)

Write() משמש לשליחת התוכן של משאב ברצף של בייטים. הבייטים נשלחים ברצף של קובצי RPC של בקשה של RPC בסטרימינג בצד הלקוח.

אפשר להמשיך את הפעולה Write(). אם יש שגיאה או שהחיבור מתנתק במהלך Write(), על הלקוח לבדוק את הסטטוס של Write() באמצעות התקשרות אל QueryWriteStatus() ולהמשיך לכתוב דרך committed_size שהוחזרה. ייתכן שהסכום הזה יהיה נמוך מכמות הנתונים שהלקוח שלח בעבר.

קריאה ל-Write() בשם משאב שנכתב ובוצעה סופית בעבר עלולה לגרום לשגיאה, בהתאם לשאלה אם השירות הבסיסי מאפשר החלפה של משאבים שנכתבו בעבר.

כשהלקוח סוגר את ערוץ הבקשות, השירות מגיב באמצעות WriteResponse. השירות לא יראה את המשאב כ-complete עד שהלקוח ישלח WriteRequest עם finish_write שמוגדר ל-true. שליחת בקשות בסטרימינג אחרי שליחת בקשה עם הערך finish_write שמוגדר ל-true תגרום לשגיאה. הלקוח צריך לבדוק את WriteResponse שהוא מקבל כדי לקבוע כמה נתונים השירות הצליח לשמור ואם השירות מציג את המשאב כ-complete או לא.

היקפי הרשאות

כדי להשתמש בתכונה הזו יש צורך באחד מההיקפים הבאים של OAuth:

  • https://www.googleapis.com/auth/plus.business.manage
  • https://www.googleapis.com/auth/business.manage

למידע נוסף, עיין בסקירה הכללית על OAuth 2.0.

RestByteStream

UpdateMedia

rpc UpdateMedia(UpdateMediaRequest) returns (Media)

מעלה מדיה. העלאה נתמכת ב-URI /upload/v1/media/{+name}.

היקפי הרשאות

כדי להשתמש בתכונה הזו יש צורך באחד מההיקפים הבאים של OAuth:

  • https://www.googleapis.com/auth/plus.business.manage
  • https://www.googleapis.com/auth/business.manage

למידע נוסף, עיין בסקירה הכללית על OAuth 2.0.

מדיה

מקור מדיה.

שדות
resource_name

string

השם של משאב המדיה.

UpdateMediaRequest

הודעת בקשה להעלאת מדיה.

שדות
resource_name

string

שם המדיה להורדה. ReadRequest.resource_name.

media

Media

ייצוג של המדיה שמעלים.

WriteRequest

אובייקט בקשה ל-ByteStream.Write.

שדות
resource_name

string

שם המשאב לכתיבה. חובה להגדיר את הערך הזה בWriteRequest הראשון של כל Write() פעולה. אם היא מוגדרת בקריאות הבאות, היא חייבת להתאים לערך של הבקשה הראשונה.

write_offset

int64

הקיזוז מתחילת המשאב שבו יש לכתוב את הנתונים. הוא נדרש בכל WriteRequest.

בפעולה WriteRequest הראשונה של פעולת Write(), מצוין בה הקיזוז הראשוני עבור הקריאה ל-Write(). הערך חייב להיות שווה ל-committed_size שהקריאה לפונקציה QueryWriteStatus() תחזיר.

בשיחות הבאות, חייב להגדיר את הערך הזה, וחייב להיות שווה לסכום של write_offset הראשונים והגדלים של כל החבילות של data שנשלחו קודם לכן בשידור הזה.

ערך שגוי יגרום לשגיאה.

finish_write

bool

אם true, המשמעות היא שהכתיבה הושלמה. שליחת WriteRequest לאחר מכן לאחד שבו finish_write הוא true תגרום לשגיאה.

data

bytes

חלק מהנתונים של המשאב. הלקוח עשוי להשאיר את השדה data ריק לכל WriteRequest נתון. כך הלקוח יכול להודיע לשירות שהבקשה עדיין פעילה בזמן שהוא מריץ פעולה במטרה לייצר עוד נתונים.

WriteResponse

אובייקט תשובה עבור ByteStream.Write.

שדות
committed_size

int64

מספר הבייטים שעובדו עבור המשאב הנתון.