עימוד תוצאות

במאמר הזה מוסבר איך ספריות וכלים שונים של Cloud Storage מחלקים את הצגת התוצאות לעמודים. העימוד נדרש כשמציגים רשימה הכוללת מספר גדול של אובייקטים או קטגוריות.

המסוף

העימוד של רשימות של קטגוריות ואובייקטים בדפים Buckets ו-Bucket details במסוף Google Cloud הוא אוטומטי.


כניסה לדף Buckets

שורת הפקודה

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.

השלבים הבאים