במאמר הזה מוסבר איך ספריות וכלים שונים של Cloud Storage מחלקים את הצגת התוצאות לעמודים. העימוד נדרש כשמציגים רשימה הכוללת מספר גדול של אובייקטים או קטגוריות.
המסוף
העימוד של רשימות של קטגוריות ואובייקטים בדפים Buckets ו-Bucket details במסוף Google Cloud הוא אוטומטי.
שורת הפקודה
gcloud
העימוד של רשימות של קטגוריות ואובייקטים ב-Google Cloud CLI הוא אוטומטי.
gsutil
העימוד של רשימות של קטגוריות ואובייקטים ב-gsutil הוא אוטומטי.
ספריות לקוח
C++
החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, בתשובה מוחזר איטרטור. דוגמה לאופן השימוש באיטרטור הזה זמינה במשאבי העזרה של C++ ל-ListObjects()
.
C#
החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, בתשובה מוחזר איטרטור. דוגמה לאופן השימוש באיטרטור הזה מופיעה במסמכי העזרה של C# ל-ListObjects()
.
Go
החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, בתשובה מוחזר איטרטור. דוגמה לאופן שבו משתמשים באיטרטור הזה מופיעה במסמכי העזרה של Go ל-Bucket.Objects
.
Java
החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, בתשובה מוחזר איטרטור. דוגמה לאופן השימוש באיטרטור הזה מופיעה במסמכי העזרה של Java ל-Storage.Objects.list
.
Node.js
החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, בתשובה מוחזר איטרטור. דוגמה לאופן השימוש באיטרטור הזה זמינה במסמכי העזרה של Node.js ל-getFiles()
.
PHP
החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, בתשובה מוחזר איטרטור. דוגמה לאופן השימוש באיטרטור הזה זמינה במסמכי העזרה של PHP ל-Objects
.
Python
החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, בתשובה מוחזר איטרטור. דוגמה לאופן השימוש באיטרטור הזה מופיעה במסמכי העזרה של Python לאיטרטורים של דפים.
Ruby
החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, בתשובה מוחזר איטרטור. דוגמה לאופן השימוש באיטרטור הזה מופיעה במסמכי העזרה של Ruby ל-Google::Cloud::Storage::File::List
.
API בארכיטקטורת REST
API בפורמט JSON
אם הרשימה לא מוצגת בשלמותה כשמפעילים פונקציה שתומכת בעימוד, מקבלים בתשובה את אסימון ההמשך nextPageToken
. הערך nextPageToken
מייצג את התוצאה האחרונה שהתקבלה. כשמכניסים את הערך של nextPageToken
לפרמטר pageToken
של בקשת ההמשך, מקבלים את דף התוצאות הבא, החל מהתוצאה האחרונה.
דוגמה לתשובה
{ "kind": "storage#objects", "nextPageToken": "CgtzaGliYS0yLmpwZw==", "items": [ objects Resource … ] }
מידע נוסף על objects Resource
זמין במסמכי העזרה בנושא אובייקטים.
דוגמה לבקשה
GET https://storage.googleapis.com/storage/v1/b/BUCKET_NAME&pageToken=NEXT_PAGE_TOKEN HTTP/1.1 Authorization: Bearer ACCESS_TOKEN Accept: application/json
כאשר:
- NEXT_PAGE_TOKEN הוא הערך
nextPageToken
מהתגובה הקודמת. - BUCKET_NAME הוא השם של קטגוריית האחסון.
- ACCESS_TOKEN הוא אסימון הגישה שמקבלים מ-OAuth 2.0 Playground.
למידע נוסף על חלוקה של תוצאות לדפים, עיינו במסמכי העזרה של JSON ל-Objects: list
או ל-Buckets: list
.
API בפורמט XML
אם הרשימה לא מוצגת בשלמותה כשמפעילים פונקציה שתומכת בעימוד, מקבלים בתשובה את אסימון ההמשך NextContinuationToken
. הערך NextContinuationToken
מייצג את התוצאה האחרונה שהתקבלה. כשמכניסים את הערך של NextContinuationToken
לפרמטר continuation-token
של בקשת ההמשך, מקבלים את דף התוצאות הבא, החל מהתוצאה האחרונה.
דוגמה לתשובה
HTTP/1.1 200 OK X-goog-metageneration: 5 Content-location: https://example-bucket.storage.googleapis.com?max-keys=2&list-type=2 Expires: Wed, 02 Mar 2022 15:58:11 GMT Content-length: 781 X-guploader-uploadid: ADPycdvFss2qs9wyMrrM2fIIZzTFFnZZM9i9k8TMbHipsxz8PqUjS5Xh_4tLsvb3_YYHTT0HmSYVv1Gtr816HQFnk28HMglyWA Cache-control: private, max-age=0 Date: Wed, 02 Mar 2022 15:58:11 GMT Content-type: application/xml; charset=UTF-8 <?xml version='1.0' encoding='UTF-8'?> <ListBucketResult xmlns='http://doc.s3.amazonaws.com/2006-03-01'> <Name>example_bucket</Name> <NextContinuationToken>CgtzaGliYS0yLmpwZw==</NextContinuationToken> <KeyCount>2</KeyCount> <MaxKeys>2</MaxKeys> <IsTruncated>true</IsTruncated> <Contents> ... </Contents> ... </ListBucketResult>
הערה: list-type
צריך להיות 2
כדי לקבל NextContinuationToken
.
דוגמה לבקשה
GET /?continuation-token=NEXT_CONTINUATION_TOKEN&prefix=t&marker=test&list-type=2 HTTP/1.1 \ Host: BUCKET_NAME.storage.googleapis.com Date: Wed, 02 Mar 2022 16:00:00 GMT Content-Length: 0 Authorization: AUTHENTICATION_STRING
כאשר:
- NEXT_CONTINUATION_TOKEN הוא הערך
NextContinuationToken
שקיבלתם מהתשובה הקודמת. - BUCKET_NAME הוא השם של קטגוריית האחסון.
- AUTHENTICATION_STRING הוא אסימון הגישה שמקבלים מ-OAuth 2.0 Playground.
להוראות מפורטות יותר לגבי חלוקה לדפים של תוצאות מקטגוריה, תוכלו לעיין במסמכי העזרה של XML בנושא List Objects
.