בדף הזה מוסבר איך להציג רשימה של אובייקטים שמאוחסנים בקטגוריות של Cloud Storage. האובייקטים מסודרים ברשימה בסדר מילוני לפי שם.
לפני שמתחילים
כדי לקבל את ההרשאות שדרושות להצגה של רשימת אובייקטים, צריך לבקש מהאדמין להקצות לכם את התפקיד "צפייה באובייקט אחסון" (roles/storage.objectViewer) ב-IAM בקטגוריה שכוללת את האובייקטים שאתם רוצים להציג ברשימה. אם רוצים להציג רשימה של אובייקטים בתיקיות מנוהלות, אפשר להעניק הרשאת roles/storage.objectViewer לתיקייה המנוהלת שמכילה את האובייקטים שרוצים לראות במקום לקטגוריה.
אם אתם מתכננים להשתמש במסוף Google Cloud כדי לבצע את המשימות שבדף הזה, בקשו מהאדמין להקצות לכם את התפקיד הבסיסי "צפייה" (roles/viewer) בנוסף לתפקיד "צפייה באובייקט אחסון" (roles/storage.objectViewer).
התפקידים האלה מכילים את ההרשאות שנדרשות כדי להציג רשימת אובייקטים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
storage.objects.liststorage.buckets.list- ההרשאה הזו נדרשת רק אם רוצים להשתמש ב Google Cloud מסוף כדי לבצע את המשימות שבדף הזה.
אתם יכולים לקבל את ההרשאות האלה גם באמצעות תפקידים מוגדרים מראש או תפקידים בהתאמה אישית אחרים.
במאמר הגדרה וניהול של מדיניות IAM בקטגוריות מוסבר איך מקצים תפקידים לקטגוריות.
הצגת רשימה של האובייקטים בקטגוריה
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על השם של הקטגוריה שאת התוכן שלה רוצים לראות.
שורת הפקודה
משתמשים בפקודה gcloud storage ls:
gcloud storage ls gs://BUCKET_NAME
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקטים שרוצים לראות את הרשימה שלהם. לדוגמה,my-bucket.
ספריות לקוח
C++
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage C++ API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה מוצגת רשימה של כל האובייקטים בקטגוריה:
בדוגמה הבאה מוצגת רשימה רק של האובייקטים עם הקידומת הנתונה:
C#
למידע נוסף, תוכלו לקרוא את מסמכי העזרה של Cloud Storage C# API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה מוצגת רשימה של כל האובייקטים בקטגוריה:
בדוגמה הבאה מוצגת רשימה רק של האובייקטים עם הקידומת הנתונה:
Go
למידע נוסף, תוכלו לקרוא את מסמכי העזרה של Cloud Storage Go API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה מוצגת רשימה של כל האובייקטים בקטגוריה:
בדוגמה הבאה מוצגת רשימה רק של האובייקטים עם הקידומת הנתונה:
Java
למידע נוסף, תוכלו לקרוא את מסמכי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה מוצגת רשימה של כל האובייקטים בקטגוריה:
בדוגמה הבאה מוצגת רשימה רק של האובייקטים עם הקידומת הנתונה:
Node.js
למידע נוסף, תוכלו לקרוא את מסמכי העזרה של Cloud Storage Node.js API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה מוצגת רשימה של כל האובייקטים בקטגוריה:
בדוגמה הבאה מוצגת רשימה רק של האובייקטים עם הקידומת הנתונה:
PHP
למידע נוסף, תוכלו לקרוא את מסמכי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה מוצגת רשימה של כל האובייקטים בקטגוריה:
בדוגמה הבאה מוצגת רשימה רק של האובייקטים עם הקידומת הנתונה:
Python
למידע נוסף, תוכלו לקרוא את מסמכי העזרה של Cloud Storage Python API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה מוצגת רשימה של כל האובייקטים בקטגוריה:
בדוגמה הבאה מוצגת רשימה רק של האובייקטים עם הקידומת הנתונה:
Ruby
למידע נוסף, תוכלו לקרוא את מסמכי העזרה של Cloud Storage Ruby API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה מוצגת רשימה של כל האובייקטים בקטגוריה:
בדוגמה הבאה מוצגת רשימה רק של האובייקטים עם הקידומת הנתונה:
Rust
בדוגמה הבאה מוצגת רשימה של כל האובייקטים בקטגוריה:
בדוגמה הבאה מוצגת רשימה רק של האובייקטים עם הקידומת הנתונה:
ממשקי API בארכיטקטורת REST
API בפורמט JSON
להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת
Authorization.משתמשים בפקודה
cURLכדי להעביר ל-API בפורמט JSON בקשה לקריאת רשימה של אובייקטים:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o"
כאשר
BUCKET_NAMEהוא השם של הקטגוריה שאת רשימת האובייקטים שלה אתם רוצים לראות. לדוגמה,my-bucket.
API בפורמט XML
להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת
Authorization.משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט XML באמצעות בקשה של קטגורייתGET:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?list-type=2"
כאשר
BUCKET_NAMEהוא השם של הקטגוריה שאת רשימת האובייקטים שלה אתם רוצים לראות. לדוגמה,my-bucket.אם אתם רוצים להגביל את תוצאות הרשימה רק לאובייקטים עם הקידומת שצוינה, אתם יכולים לציין את הקידומת בפרמטר
prefix=PREFIXשל מחרוזת השאילתה.
הצגת רשימה של האובייקטים בתיקייה
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שמכילה את התיקייה.
בכרטיסייה Objects שבדף Bucket details, לוחצים על שם התיקייה שאת התוכן שלה רוצים לראות.
שורת הפקודה
משתמשים בפקודה gcloud storage ls כדי להציג את רשימת האובייקטים בתיקייה:
gcloud storage ls gs://BUCKET_NAME/FOLDER_NAME
כאשר:
BUCKET_NAMEהוא שם הקטגוריה שמכילה את התיקייה. לדוגמה,my-bucket.
FOLDER_NAMEהוא שם התיקייה שמכילה את האובייקטים שרוצים לראות. לדוגמה,my-folder.
ממשקי API בארכיטקטורת REST
API בפורמט JSON
כדי להציג רשימה של האובייקטים בתיקייה, משתמשים בבקשה להצגת רשימה של אובייקטים עם הפרמטרים prefix ו-delimiter. כשמגדירים את הפרמטר prefix, פעולת הרשימה מוגבלת להחזרת אובייקטים ותיקיות רק מתחת לתחילית. כשמגדירים את הפרמטר delimiter, הרשימה prefixes[] בתגובה מתמלאת בשמות של תיקיות מתחת לתחילית שצוינה.
לדוגמה:
כדי להציג רשימה של כל האובייקטים בתיקייה
image/בקטגוריהmy-bucket, משתמשים בכתובת ה-URL הבאה:"https://storage.googleapis.com/storage/v1/b/my-bucket/o?prefix=image&delimiter=/".הפעולה הזו יכולה להחזיר את האובייקטים
my-bucket/image/cat.jpegו-my-bucket/image/dog.jpeg.כדי לכלול אובייקטים בתיקיות משנה בתוך
image/, מסירים את הפרמטרdelimiter:"https://storage.googleapis.com/storage/v1/b/my-bucket/o?prefix=image".יכול להיות שהפונקציה תחזיר את האובייקטים
my-bucket/image/cat.jpeg,my-bucket/image/dog.jpegו-my-bucket/image/dog/shiba.jpeg.
כדי להשתמש בתווים כלליים בבקשה להצגת רשימת אובייקטים ולהתאים אובייקטים לפי ביטוי glob, משתמשים בפרמטר matchGlob. לדוגמה, matchGlob=**.jpeg תואם לכל האובייקטים שמסתיימים ב-.jpeg. כשמשתמשים ב-matchGlob, צריך להגדיר את delimiter ל-/.
לדוגמה, כדי להתאים את כל האובייקטים בתיקייה image שמסתיימים ב-.jpeg, משתמשים בכתובת ה-URL הבאה:
"https://storage.googleapis.com/storage/v1/b/my-bucket/o?prefix=image&delimiter=/&matchGlob=**.jpeg"
פרטים נוספים על שימוש בפרמטרים לסינון אובייקטים מופיעים במאמרי העזרה של ה-API בפורמט JSON בנושא רשימת אובייקטים.
תרחיש שימוש
השימוש בפקודה prefix כדי להציג את התוכן של תיקייה יכול להיות שימושי אם יש לכם הרשאה רק להצגת רשימה של אובייקטים בתיקייה, אבל לא בכל הקטגוריה. לדוגמה, נניח שיש לכם את התפקיד "צפייה באובייקט אחסון" (roles/storage.objectViewer) ב-IAM בתיקייה המנוהלת my-bucket/my-managed-folder-a/, אבל לא בתיקייה המנוהלת my-bucket/my-managed-folder-b/. כדי לקבל רק את האובייקטים ב-my-managed-folder-a, אפשר לציין prefix=my-managed-folder-a/.
סינון אובייקטים
כשמציגים רשימה של אובייקטים, אפשר להשתמש בתחיליות או בסיומות בבקשה של הרשימה כדי לסנן אובייקטים לפי שם. כדי להשתמש בתווים כלליים ולסנן אובייקטים לפי ביטוי glob, משתמשים בפרמטר matchGlob (או match_glob, בהתאם לספריית הלקוח).
המסוף
מידע על סינון ומיון של אובייקטים בדליים או בתיקיות אפשר למצוא במאמר בנושא סינון ומיון.
שורת הפקודה
אפשר להשתמש בתווים כלליים לחיפוש בפקודה gcloud storage ls כדי לסנן אובייקטים לפי קידומת או סיומת. לדוגמה, הפקודה הבאה מציגה רק אובייקטים בקטגוריה my-bucket שהשם שלהם מתחיל ב-image ומסתיים ב-.png:
gcloud storage ls gs://my-bucket/image*.png
אם הבקשה מבוצעת בהצלחה, התגובה תיראה דומה לדוגמה הבאה:
gs://my-bucket/image.png gs://my-bucket/image-dog.png gs://my-bucket/image-cat.png ...
אפשר להשתמש בתווים כלליים לחיפוש עם כוכבית כפולה כדי להתאים לאפס רמות של תיקיות או יותר בנתיב. לדוגמה, הפקודה הבאה מציגה רק אובייקטים שהשם שלהם מסתיים ב-.jpeg בכל תיקייה או תיקיית משנה בקטגוריה my-bucket:
gcloud storage ls gs://my-bucket/**/*.jpeg
אם הבקשה בוצעה בהצלחה, התגובה תיראה דומה לדוגמה הבאה:
gs://my-bucket/puppy.jpeg gs://my-bucket/pug.jpeg gs://my-bucket/pets/dog.jpeg ...
ממשקי API בארכיטקטורת REST
במאמר רשימת אובייקטים בתיקיות מוסבר איך לסנן אובייקטים לפי תיקייה או לפי קידומת של שם האובייקט.
סינון אובייקטים לפי הקשרים
כשמציגים רשימה של אובייקטים, אפשר להשתמש במסנן כדי להציג רק אובייקטים שתואמים להקשרים שצוינו.
שורת הפקודה
משתמשים בפקודה gcloud storage objects list:
gcloud storage objects list gs://BUCKET_NAME --metadata-filter='contexts."KEY"="VALUE"'
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים לסנן לפי הקשר. לדוגמה,my-bucket. -
KEYהוא מפתח ההקשר שמצורף לאובייקט. -
VALUEהוא הערך שמשויך למפתח ההקשר.
אם הפעולה בוצעה ללא שגיאות, התגובה תיראה דומה לדוגמה הבאה:
---
bucket: my-bucket
contexts:
Department:
createTime: '2023-01-01T00:00:00.000000+00:00'
type: CUSTOM
updateTime: '2023-01-01T00:00:00.000000+00:00'
value: HR
DataClassification:
createTime: '2023-01-01T00:00:00.000000+00:00'
type: CUSTOM
updateTime: '2023-01-01T00:00:00.000000+00:00'
value: Confidential
name: employees.txt
...
הפקודה הבאה מציגה רשימה של אובייקטים עם מפתח ההקשר שצוין, בלי קשר לערך שלו:
gcloud storage objects list gs://BUCKET_NAME --metadata-filter='contexts."KEY":*'
כדי להגביל את הפלט כך שיוצגו רק מפתחות וערכים של הקשר, משתמשים ב---format=contextsonly:
gcloud storage objects list gs://BUCKET_NAME --metadata-filter='contexts."KEY":*' --format=contextsonly
אם הפעולה בוצעה ללא שגיאות, התגובה תיראה דומה לדוגמה הבאה:
--- Department: HR DataClassification: Confidential
ספריות לקוח
Java
למידע נוסף, קראו את מאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Rust
ממשקי API בארכיטקטורת REST
API בפורמט JSON
בדוגמה של בקשת Object: list אפשר לראות איך משתמשים בפרמטרים של שאילתה filter כדי לסנן אובייקטים לפי הקשר.
בדוגמה הבאה, הסינון מתבצע לפי צמד מפתח/ערך:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/?filter=contexts.%22KEY%22%3D%22VALUE%22"
כאשר:
-
BUCKET_NAMEהוא שם הקטגוריה שמכילה את האובייקט שרוצים לסנן לפי ההקשר שלו. לדוגמה,my-bucket. -
KEYהוא מפתח ההקשר שמצורף לאובייקט. -
VALUEהוא הערך שמשויך למפתח ההקשר.
תחביר
Cloud Storage תומך בתחביר הבא של המסנן.
| תחביר | תיאור |
|---|---|
contexts."KEY":* |
התאמה לכל אובייקט שיש לו הקשר עם המפתח שצוין. |
contexts."KEY"="VALUE" |
התאמה לכל אובייקט שיש לו הקשר עם המפתח והערך שצוינו. |
|
או
|
התאמה לכל אובייקט שאין לו הקשר עם המפתח שצוין. |
|
או
|
התאמה לכל אובייקט שלא מצורף אליו הקשר עם המפתח והערך שצוינו. |
שיקולי ביצועים כשיוצרים רשימות אובייקטים
המבנה הבסיסי של קטגוריות עם מרחב שמות היררכי משפיע על הביצועים של פעולת הצגת רשימת האובייקטים, בהשוואה לקטגוריות עם מרחב שמות שטוח. מידע נוסף מופיע במאמר אופטימיזציה של הביצועים בקטגוריות שבהן מופעל מרחב שמות היררכי.
המאמרים הבאים
- הורדה של אובייקט מקטגוריה
- הצגת מטא-נתונים של אובייקטים ועריכה שלהם
- מחיקה של אובייקטים מקטגוריה
- למידע נוסף על תוצאות בחלוקה לדפים.