תוצאות בחלוקה לדפים

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

המסוף

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


כניסה לדף Buckets

שורת הפקודה

העימוד של רשימות של קטגוריות ואובייקטים ב-Google Cloud CLI הוא אוטומטי.

ספריות לקוח

C++‎

החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, ה-method מחזיר איטרטור. אתם יכולים לשלוט בגודל הדף על ידי ציון אפשרויות בבקשה. דוגמה לאופן השימוש באיטרטור הזה זמינה במשאבי העזרה של C++‎ ל-ListObjects().

C#‎

החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, ה-method מחזיר איטרטור. אתם יכולים לשלוט בגודל הדף על ידי ציון אפשרויות בבקשה. דוגמה לאופן השימוש באיטרטור הזה מופיעה במאמרי העזרה של C# ‎ ל-ListObjects().

המשך

החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, ה-method מחזירה איטרטור. אתם יכולים לשלוט בגודל הדף באמצעות שאילתה או אפשרויות של כלי לדפדוף. דוגמה לאופן השימוש באיטרטור הזה מופיעה במסמכי העזרה של Go ל-Bucket.Objects.

Java

החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, ה-method מחזירה אסימון דף. אפשר לשלוט בגודל הדף באמצעות האפשרויות pageSize. דוגמה לאופן השימוש בשיטה הזו מופיעה במאמרי העזרה של Java.

Node.js

החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, ה-method מחזיר איטרטור. אפשר לשלוט בגודל הדף באמצעות אפשרויות השאילתה (כמו maxResults). דוגמה לאופן השימוש באיטרטור הזה זמינה במאמרי העזרה של Node.js ל-getFiles().

PHP

החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, ה-method מחזיר איטרטור. אפשר לשלוט בגודל הדף באמצעות אפשרויות כמו maxResults. דוגמה לאופן השימוש באיטרטור הזה זמינה במאמרי העזרה של PHP ל-Objects.

Python

החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, ה-method מחזירה איטרטור. אפשר לשלוט בגודל הדף באמצעות אפשרויות כמו max_results או page_size. דוגמה לאופן השימוש באיטרטור הזה מופיעה במסמכי העזרה של Python לאיטרטורים של דפים.

Ruby

החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, ה-method מחזירה איטרטור. אפשר לשלוט בגודל הדף באמצעות אפשרויות כמו max. דוגמה לאופן השימוש באיטרטור הזה מופיעה במאמרי העזרה של Ruby ל-Google::Cloud::Storage::File::List.

ממשקי API בארכיטקטורת REST

‫API בפורמט JSON

כדי לשלוט במספר התוצאות שמוחזרות לכל דף, משתמשים בפרמטר השאילתה maxResults בבקשות אל Objects: list או אל Buckets: list. לדוגמה, כדי להציג רשימה של עד 5 אובייקטים בכל פעם:

GET https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?maxResults=5

אם הרשימה לא מוצגת בשלמותה כשמפעילים פונקציה שתומכת בעימוד, מקבלים בתשובה את אסימון ההמשך nextPageToken. הערך nextPageToken מייצג את התוצאה האחרונה שהתקבלה.

לדוגמה, בקשה להצגת רשימה של אובייקטים ב-BUCKET_NAME עשויה להחזיר nextPageToken בתגובה:

{
  "kind": "storage#objects",
  "nextPageToken": "CgtzaGliYS0yLmpwZw==",
  "items": [
    {
      OBJECT_1_METADATA
    },
    {
      OBJECT_2_METADATA
    },
    …
  ]
}

כדי לקבל את דף התוצאות הבא, החל מהתוצאה האחרונה, צריך להכניס את הערך של nextPageToken לפרמטר pageToken של בקשת ההמשך:

GET https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?pageToken=CgtzaGliYS0yLmpwZw==

אפשר לשלב את maxResults ו-pageToken באותה בקשה כדי להמשיך להציג את הרשימה עם גודל דף ספציפי.

למידע נוסף על חלוקה של תוצאות לדפים, עיינו במסמכי העזרה של JSON ל-Objects: list או ל-Buckets: list.

‫API בפורמט XML

כדי לשלוט במספר התוצאות שמוחזרות לכל דף, משתמשים בפרמטר השאילתה max-keys בבקשות אל List Objects. לדוגמה, כדי להציג עד 5 אובייקטים בכל פעם:

GET /?max-keys=5 HTTP/1.1
Host: BUCKET_NAME.storage.googleapis.com

אם הרשימה לא מוצגת בשלמותה כשמפעילים פונקציה שתומכת בעימוד, מקבלים בתשובה את אסימון ההמשך NextContinuationToken. הערך NextContinuationToken מייצג את התוצאה האחרונה שהתקבלה.

לדוגמה, בקשה להצגת רשימה של אובייקטים ב-BUCKET_NAME עשויה להחזיר NextContinuationToken בתגובה:

<?xml version='1.0' encoding='UTF-8'?>
<ListBucketResult xmlns='http://doc.s3.amazonaws.com/2006-03-01'>
  <Name>my-bucket</Name>
  <NextContinuationToken>CgtzaGliYS0yLmpwZw==</NextContinuationToken>
  <KeyCount>2</KeyCount>
  <MaxKeys>2</MaxKeys>
  <IsTruncated>true</IsTruncated>
  <Contents>
    ...
  </Contents>
  ...
</ListBucketResult>

שימו לב שצריך להגדיר את list-type לערך 2 כדי לקבל NextContinuationToken כשמציגים רשימה של אובייקטים.

כדי לקבל את דף התוצאות הבא, החל מהתוצאה האחרונה, צריך להעביר את הערך של NextContinuationToken לפרמטר continuation-token של בקשת ההמשך:

GET /?continuation-token=CgtzaGliYS0yLmpwZw==&list-type=2 HTTP/1.1
Host: BUCKET_NAME.storage.googleapis.com

אפשר לשלב את max-keys ו-continuation-token באותה בקשה.

להוראות מפורטות יותר לגבי חלוקה לדפים של תוצאות מקטגוריה, תוכלו לעיין במסמכי העזרה של XML בנושא List Objects.

השלבים הבאים