本頁面說明如何列出儲存在 Cloud Storage bucket 中的物件。物件會依名稱的字母順序排列。
事前準備
如要取得列出物件所需的權限,請要求管理員針對包含要列出物件的 bucket,授予您 Storage 物件檢視者 (roles/storage.objectViewer) IAM 角色。如要列出代管資料夾中的物件,可以對包含要查看物件的代管資料夾授予 roles/storage.objectViewer,而非對值區授予。
如果您打算使用 Google Cloud 控制台執行本頁的工作,請要求管理員授予您「檢視者」(roles/viewer) 基本角色和「Storage 物件檢視者」(roles/storage.objectViewer) 角色。
這些角色具備列出物件所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
storage.objects.liststorage.buckets.list- 只有在您想使用 Google Cloud 控制台執行本頁工作時,才需要這項權限。
如要瞭解如何授予 bucket 角色,請參閱「設定及管理 bucket 的 IAM 政策」。
列出值區中的物件
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,按一下要查看內容的 bucket 名稱。
指令列
使用 gcloud storage ls 指令:
gcloud storage ls gs://BUCKET_NAME
其中:
BUCKET_NAME是 bucket 的名稱,其中包含您要列出的物件。例如: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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
下列範例會列出值區中所有的物件:
下列範例會列出具有指定前置字串的物件:
Rust
下列範例會列出值區中所有的物件:
下列範例會列出具有指定前置字串的物件:
REST API
JSON API
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL透過GET值區要求來呼叫 XML API:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?list-type=2"
其中
BUCKET_NAME是要列出物件的 bucket 名稱。例如:my-bucket。您可以使用
prefix=PREFIX查詢字串參數,將結果限制為具有指定前置字串的物件。
列出資料夾中的物件
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,按一下含有資料夾的 bucket 名稱。
在「Bucket details」(值區詳細資料) 頁面的「Objects」(物件) 分頁中,按一下要查看內容的資料夾名稱。
指令列
使用 gcloud storage ls 指令列出資料夾中的物件:
gcloud storage ls gs://BUCKET_NAME/FOLDER_NAME
其中:
BUCKET_NAME是資料夾所在的 bucket 名稱。例如:my-bucket。FOLDER_NAME是要列出物件的資料夾名稱。例如:my-folder。
REST API
JSON API
如要列出資料夾中的物件,請使用列出物件要求,並搭配 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 參考文件。
用途
如果您只有列出資料夾中物件的權限,但沒有列出整個 bucket 的權限,可以使用 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/。
篩選物件
列出物件時,您可以在清單要求中使用前置字串或後置字串,依名稱篩選物件。如要使用萬用字元,並依 glob 運算式篩選物件,請使用 matchGlob 參數 (或 match_glob,視用戶端程式庫而定)。
控制台
如要瞭解如何篩選及排序 bucket 或資料夾中的物件,請參閱「篩選及排序」。
指令列
您可以在 gcloud storage ls 指令中使用萬用字元,依前置字元或後置字元篩選物件。舉例來說,下列指令只會列出 bucket 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 的物件,這些物件位於 bucket 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 ...
REST API
如要瞭解如何依資料夾或物件名稱前置字串篩選物件,請參閱「列出資料夾中的物件」。
依結構定義篩選物件
列出物件時,您可以使用篩選器,只顯示符合指定情境的物件。
指令列
使用 gcloud storage objects list 指令:
gcloud storage objects list gs://BUCKET_NAME --metadata-filter='contexts."KEY"="VALUE"'
其中:
BUCKET_NAME是 bucket 的名稱,其中包含要依情境篩選的物件。例如: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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Rust
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是 bucket 的名稱,其中包含您要依據其背景資訊篩選的物件。例如:my-bucket。KEY是附加至物件的內容索引鍵。VALUE是與情境索引鍵相關聯的值。
語法
Cloud Storage 支援下列篩選器語法。
| 語法 | 說明 |
|---|---|
contexts."KEY":* |
比對任何具有附加指定鍵的結構定義物件。 |
contexts."KEY"="VALUE" |
比對任何具有脈絡資料且附加指定鍵和值的物件。 |
|
OR
|
比對任何未附加指定索引鍵內容的物件。 |
|
OR
|
比對任何不含指定鍵和值的物件。 |
列出物件時的效能考量
與平面命名空間 bucket 相比,啟用階層命名空間的 bucket 底層結構會影響列出物件作業的效能。詳情請參閱「在已啟用階層命名空間的 bucket 中提高效能」。
後續步驟
- 從您的值區下載物件。
- 查看及編輯物件中繼資料。
- 從值區刪除物件。
- 瞭解如何將結果分頁。