このページでは、Cloud Storage バケットに保存されているオブジェクトを一覧表示する方法について説明します。表示されるオブジェクトは名前順に並べられます。
始める前に
オブジェクトの一覧表示に必要な権限を取得するには、リストするオブジェクトを含むバケットに対するストレージ オブジェクト閲覧者(roles/storage.objectViewer)の IAM ロールを付与するよう管理者に依頼してください。マネージド フォルダ内のオブジェクトを一覧表示する場合は、バケットではなく、表示するオブジェクトを含むマネージド フォルダに roles/storage.objectViewer を付与します。
Google Cloud コンソールを使用してこのページのタスクを実施する場合は、ストレージ オブジェクト閲覧者(roles/storage.objectViewer)ロールに加えて、閲覧者(roles/viewer)の基本ロールを付与するよう管理者に依頼してください。
これらのロールには、オブジェクトを一覧取得するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
storage.objects.liststorage.buckets.list- この権限は、 Google Cloud コンソールを使用してこのページのタスクを実施する場合にのみ必要です。
これらの権限は、他の事前定義ロールやカスタムロールを使用して取得することもできます。
バケットのロールの付与については、バケットでの IAM ポリシーの設定と管理をご覧ください。
バケット内のオブジェクトを一覧表示する
コンソール
- Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。
バケットリストで、コンテンツを表示するバケットの名前をクリックします。
コマンドライン
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
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
XML API
gcloud CLI をインストールして初期化します。これにより、
Authorizationヘッダーのアクセス トークンを生成できます。cURLを使用して、GETBucket リクエストで 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 コンソールで Cloud Storage の [バケット] ページに移動します。
バケットリストで、フォルダを含むバケットの名前をクリックします。
[バケットの詳細] ページの [オブジェクト] タブで、コンテンツを表示するフォルダの名前をクリックします。
コマンドライン
gcloud storage ls コマンドを使用して、フォルダ内のオブジェクトを一覧表示します。
gcloud storage ls gs://BUCKET_NAME/FOLDER_NAME
ここで
BUCKET_NAMEは、フォルダを含むバケットの名前です。例:my-bucketFOLDER_NAMEは、一覧表示するオブジェクトを含むフォルダの名前です。例:my-folder
REST API
JSON API
フォルダ内のオブジェクトを一覧表示するには、prefix パラメータと delimiter パラメータを設定してオブジェクト リスト リクエストを使用します。prefix パラメータを設定すると、リスト オペレーションは、プレフィックスの下にあるオブジェクトとフォルダのみを返すようにスコープ設定されます。delimiter パラメータを設定すると、レスポンスの prefixes[] リストには、指定された接頭辞の下にあるフォルダの名前が入力されます。
例:
バケット
my-bucket内にあるフォルダimage/のすべてのオブジェクトを一覧表示するには、次の 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 を / に設定する必要があります。
たとえば、次の URL を使用すると、フォルダ 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/ に対するストレージ オブジェクト閲覧者(roles/storage.objectViewer)の IAM ロールがあり、マネージド フォルダ my-bucket/my-managed-folder-b/ に対するロールは付与されていないとします。my-managed-folder-a 内のオブジェクトのみを取得するには、prefix=my-managed-folder-a/ を指定します。
オブジェクトをフィルタする
オブジェクトを一覧表示するときに、list リクエストで接頭辞または接尾辞を使用して、名前でオブジェクトをフィルタリングできます。
コンソール
バケットまたはフォルダ内のオブジェクトをフィルタして並べ替える方法については、フィルタと並べ替えをご覧ください。
コマンドライン
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 ...
二重ワイルドカード(**)を使用すると、パス内の 0 個以上のフォルダレベルに一致させることができます。たとえば、次のコマンドは、バケット 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-bucketKEYは、オブジェクトに関連付けられたコンテキスト キーです。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-bucketKEYは、オブジェクトに関連付けられたコンテキスト キーです。VALUEは、コンテキスト キーに関連付けられた値です。
構文
Cloud Storage は、フィルタで次の構文をサポートしています。
| 構文 | 説明 |
|---|---|
contexts."KEY":* |
指定されたキーが関連付けられたコンテキストを持つオブジェクトに一致します。 |
contexts."KEY"="VALUE" |
指定されたキーと値が関連付けられたコンテキストを持つオブジェクトに一致します。 |
|
または
|
指定されたキーが関連付けられたコンテキストを持たないオブジェクトに一致します。 |
|
または
|
指定されたキーと値が関連付けられたコンテキストを持たないオブジェクトに一致します。 |
オブジェクトを一覧表示する際のパフォーマンスに関する考慮事項
階層型名前空間が有効になっているバケットの基盤となる構造は、フラット名前空間のバケットと比較して、オブジェクトの一覧表示オペレーションのパフォーマンスに影響します。詳細については、階層型名前空間が有効なバケットのパフォーマンスを最適化するをご覧ください。