このページでは、Cloud Storage バケットに保存されているオブジェクトを一覧表示する方法について説明します。表示されるオブジェクトは名前順に並べられます。
準備
オブジェクトのリストに必要な権限を取得するには、リストするオブジェクトを含むバケットに対するストレージ オブジェクト 閲覧者(roles/storage.objectViewer
)の IAM ロールを付与するよう管理者に依頼してください。
Google Cloud コンソールを使用してこのページのタスクを実行する場合は、ストレージ オブジェクト閲覧者(roles/storage.objectViewer
)ロールに加えて、閲覧者(roles/viewer
)の基本ロールを付与するよう管理者に依頼してください。
これらのロールには、オブジェクトを一覧取得するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
storage.objects.list
storage.buckets.list
- この権限は、Google Cloud コンソールを使用してこのページのタスクを実行する場合にのみ必要です。
これらの権限は、他の事前定義ロールやカスタムロールを使用して取得することもできます。
バケットのロールの付与については、バケットで IAM を使用するをご覧ください。
バケット内のオブジェクトを一覧表示する
バケット内のオブジェクトを一覧表示する手順を示します。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットリストで、コンテンツを表示するバケットの名前をクリックします。
(省略可)フィルタリングと並べ替えを使用して、リスト内の検索結果を絞り込んで整理します。
コマンドライン
gcloud storage ls
コマンドを使用し、--recursive
フラグを指定します。
gcloud storage ls --recursive gs://BUCKET_NAME/**
ここで
BUCKET_NAME
は、一覧表示するオブジェクトが含まれるバケットの名前です。例:my-bucket
次の例のようなレスポンスになります。
gs://my-bucket/cats.jpeg gs://my-bucket/dogs.jpeg gs://my-bucket/thesis.txt ...
クライアント ライブラリ
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
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、オブジェクトを一覧表示するリクエストで JSON API を呼び出します。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
。includeFoldersAsPrefixes=True
クエリ パラメータを使用すると、リスト結果の一部としてマネージド フォルダを取得できます。includeFoldersAsPrefixes
パラメータを使用する場合は、delimiter
パラメータを/
に設定する必要があります。
XML API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、GET
Bucket リクエストで XML API を呼び出します。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 コンソールを使用して名前の接頭辞でオブジェクトをフィルタリングするには、[バケットの詳細] ページの [オブジェクトとフォルダをフィルタ] フィールドを使用します。
Google Cloud コンソールで使用できるその他のフィルタリング オプションについては、フィルタリングと並べ替えをご覧ください。
コマンドライン
Google Cloud CLI を使用してオブジェクトを一覧表示する場合は、ワイルドカードを使用して、指定した接頭辞で始まるオブジェクトまたは指定した接尾辞で終わるオブジェクトをフィルタリングできます。たとえば、次のコマンドは、image
で始まり .png
で終わるオブジェクトを照合します。
gcloud storage ls gs://my-bucket/image*.png
Google Cloud CLI を使用したフィルタリングの詳細については、gcloud storage ls
のドキュメントをご覧ください。
REST API
JSON API
Cloud Storage JSON API を使用してオブジェクトを一覧表示する場合は、prefix
または matchGlob
クエリ文字列パラメータを使用して結果をフィルタリングできます。これらのクエリ文字列パラメータの使用方法については、オブジェクト リストの JSON API のリファレンス ドキュメントをご覧ください。
接頭辞によるフィルタリング
prefix=PREFIX
またはクエリ文字列パラメータを使用すると、指定した接頭辞を持つオブジェクトまたはマネージド フォルダに結果を制限できます。たとえば、接頭辞 folder/subfolder/
を使用してバケット my-bucket
内のすべてのオブジェクトを一覧表示するには、URL "https://storage.googleapis.com/storage/v1/b/my-bucket/o?prefix=folder/subfolder/"
を使用してオブジェクトの一覧表示リクエストを行います。
prefix
を使用してマネージド フォルダの内容を一覧表示することは、バケット全体ではなく、マネージド フォルダ内のオブジェクトのみを一覧表示する権限が付与されている場合に便利です。たとえば、マネージド フォルダ my-bucket/my-managed-folder-a/
に対するストレージ オブジェクト閲覧者(roles/storage.objectViewer
)の IAM ロールがあり、マネージド フォルダ my-bucket/my-managed-folder-b/
に対するロールは付与されていないとします。my-managed-folder-a
内のオブジェクトのみを取得するには、prefix=my-managed-folder-a/
を指定します。
結果をマネージド フォルダとその中のオブジェクトに制限する場合は、PREFIX
を /
で終了する必要があります(たとえば、prefix=my-managed-folder/
)。それ以外の場合、結果にはマネージド フォルダに隣接するオブジェクトも含まれる可能性があります。この例では、次のオブジェクトを含むバケットがあります。
my-bucket/abc.txt
my-bucket/abc/object.txt
prefix=abc/
を指定するとオブジェクト my-bucket/abc/object.txt
が返されますが、prefix=abc
を指定すると my-bucket/abc.txt
と my-bucket/abc/object.txt
の両方が返されます。
glob 式によるフィルタリング
matchGlob=GLOB_PATTERN
クエリ文字列パラメータを使用すると、特定の glob 式に一致するオブジェクトのみに結果をフィルタリングできます。たとえば、matchGlob=**.jpeg
を使用すると、末尾が .jpeg
のすべてのオブジェクトを照合できます。
matchGlob
パラメータを使用するリクエストに /
以外の値に設定された delimiter
パラメータも含まれている場合、このリクエストは失敗します。
オブジェクトを一覧表示する際のパフォーマンスに関する検討事項
階層型名前空間が有効になっているバケットの基盤となる構造は、フラット名前空間バケットと比較して、オブジェクトの一覧表示オペレーションのパフォーマンスに影響する可能性があります。階層型名前空間が有効になっているバケット内のオブジェクトを一覧表示する際のパフォーマンスを最適化する方法については、オブジェクトの一覧表示をご覧ください。