這個頁面說明如何列出 Cloud Storage 值區中的物件,物件會按照名稱的字母順序排序。
事前準備
如要取得列出物件所需的權限,請要求管理員為您授予值區的儲存空間物件檢視者 (roles/storage.objectViewer
) 身分與存取權管理角色。如要列出代管資料夾中的物件,可以對包含要檢視物件的代管資料夾授予 roles/storage.objectViewer
,而不必對值區授予。
如果您打算使用 Google Cloud 控制台執行本頁面的工作,請要求管理員授予您檢視者 (roles/viewer
) 基本角色,以及 Storage 物件檢視者 (roles/storage.objectViewer
) 角色。
這些角色具備列出物件所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
storage.objects.list
storage.buckets.list
- 如要使用 Google Cloud 控制台執行這個頁面的工作,才需要這項權限。
如要瞭解如何授予值區角色,請參閱「設定及管理值區的 IAM 政策」。
列出值區中的物件
控制台
- 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。
在值區清單中,按一下要查看內容的值區名稱。
指令列
使用 gcloud storage ls
指令:
gcloud storage ls gs://BUCKET_NAME
其中:
BUCKET_NAME
是包含要列出物件的值區名稱。例如:my-bucket
。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會列出值區中所有的物件:
下列範例會列出具有指定前置字串的物件:
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會列出值區中所有的物件:
下列範例會列出具有指定前置字串的物件:
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會列出值區中所有的物件:
下列範例會列出具有指定前置字串的物件:
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會列出值區中所有的物件:
下列範例會列出具有指定前置字串的物件:
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會列出值區中所有的物件:
下列範例會列出具有指定前置字串的物件:
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會列出值區中所有的物件:
下列範例會列出具有指定前置字串的物件:
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會列出值區中所有的物件:
下列範例會列出具有指定前置字串的物件:
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會列出值區中所有的物件:
下列範例會列出具有指定前置字串的物件:
REST API
JSON API
XML API
列出資料夾中的物件
控制台
- 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。
在值區清單中,按一下包含資料夾的值區名稱。
在「Bucket details」(值區詳細資料) 頁面的「Objects」(物件) 分頁中,按一下要查看內容的資料夾名稱。
指令列
使用 gcloud storage ls
指令列出資料夾中的物件:
gcloud storage ls gs://BUCKET_NAME/FOLDER_NAME
其中:
BUCKET_NAME
是包含資料夾的值區名稱。例如:my-bucket
。FOLDER_NAME
是包含要列出物件的資料夾名稱。例如:my-folder
。
REST API
JSON API
如要列出資料夾中的物件,請使用 list objects 要求,並搭配 prefix
和 delimiter
參數。設定 prefix
參數後,清單作業的範圍會限定為只傳回前置字元下的物件和資料夾。設定 delimiter
參數後,回應中的 prefixes[]
清單會填入指定前置字元下的資料夾名稱。
例如:
如要列出 bucket
my-bucket
中資料夾image/
的所有物件,請使用下列網址:"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
結尾的物件,請使用下列網址:
"https://storage.googleapis.com/storage/v1/b/my-bucket/o?prefix=image&delimiter=/&matchGlob=**.jpeg"
如要進一步瞭解如何使用參數篩選物件,請參閱「物件清單 JSON API 參考說明文件」。
用途
如果您只有列出資料夾中物件的權限,但沒有整個值區的權限,使用 prefix
列出資料夾內容就很有幫助。舉例來說,假設您擁有受管理資料夾 my-bucket/my-managed-folder-a/
的 Storage 物件檢視者 (roles/storage.objectViewer
) IAM 角色,但沒有受管理資料夾 my-bucket/my-managed-folder-b/
的角色。如要只傳回 my-managed-folder-a
中的物件,可以指定 prefix=my-managed-folder-a/
。
篩選物件
列出物件時,您可以在清單要求中使用前置字串或後置字串,依名稱篩選物件。
控制台
如要瞭解如何篩選及排序 bucket 或資料夾中的物件,請參閱篩選和排序。
指令列
您可以在 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 ...
您可以使用雙星萬用字元,比對路徑中零個以上的資料夾層級。舉例來說,下列指令只會列出值區 my-bucket
中任何資料夾或子資料夾內,名稱結尾為 .jpeg
的物件:
gcloud storage ls gs://my-bucket/**/*.jpeg
如果要求成功,回應會類似以下內容:
gs://my-bucket/puppy.jpeg gs://my-bucket/pug.jpeg gs://my-bucket/pets/dog.jpeg ...
REST API
如要瞭解如何依資料夾或物件名稱前置字串篩選物件,請參閱列出資料夾中的物件。
依據情境篩選物件
您可以使用篩選器,只顯示清單回應中具有指定內容 (預覽) 的物件。
指令列
使用 gcloud alpha storage objects list
指令:
gcloud alpha 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 ...
用戶端程式庫
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
REST API
JSON API
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" |
比對任何附加指定鍵和值的內容物件。 |
OR
|
比對任何沒有附加指定鍵的物件。 |
OR
|
比對任何沒有附加指定鍵和值的內容的物件。 |
列出物件時的效能注意事項
與平面命名空間 bucket 相比,啟用階層式命名空間的 bucket 底層結構會影響列出物件作業的效能。詳情請參閱「在啟用階層式命名空間的 bucket 中提升效能」。
後續步驟
- 從您的值區下載物件。
- 查看及編輯物件中繼資料。
- 從值區刪除物件。
- 瞭解如何將結果分頁。