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

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

המסוף

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


כניסה לדף Buckets

שורת הפקודה

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

ספריות לקוח

C++‎

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

C#‎

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

המשך

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

Java

החלוקה לדפים בספריות לקוח מתבצעת כברירת מחדל. כשמפעילים פונקציה שתומכת בעימוד, השיטה מחזירה אסימון דף. אפשר לשלוט בגודל הדף באמצעות האפשרויות של 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.s3nsapis.fr/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.s3nsapis.fr/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.s3nsapis.fr

אם הרשימה לא מוצגת בשלמותה כשמפעילים פונקציה שתומכת בעימוד, מקבלים בתשובה את אסימון ההמשך 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.s3nsapis.fr

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

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

השלבים הבאים