本页面介绍了如何列出 Cloud Storage 存储桶中存储的对象,这些对象按名称的字典顺序在列表中排序。
所需权限
控制台
如需使用 Google Cloud 控制台列出对象,您必须对包含对象的存储桶或父级资源(例如存储桶所属的项目)拥有 storage.objects.list
IAM 权限。
您可以通过基本角色、预定义角色或自定义 IAM 角色获取所需权限。如需确定所需的角色,请参阅 Cloud Storage IAM 角色。 如需了解如何授予角色,请参阅使用 IAM。
如需详细了解所需权限,请参阅 Google Cloud 控制台的 Cloud Storage IAM 权限。
命令行
gsutil
如需使用 gsutil 列出对象,您必须对包含对象的存储桶或父级资源(例如存储桶所属的项目)拥有 storage.objects.list
权限。如需将对象 ACL 作为列表的一部分返回,您还必须拥有 storage.objects.getIamPolicy
权限。
您可以通过基本角色、预定义角色或自定义 IAM 角色获取所需权限。如需确定所需的角色,请参阅 Cloud Storage IAM 角色。 如需了解如何授予角色,请参阅使用 IAM。
如需详细了解所需权限,请参阅 gsutil 的 Cloud Storage IAM 权限。
gcloud
如需使用 gcloud 列出对象,您必须对包含对象的存储桶或父级资源(例如存储桶所属的项目)拥有 storage.objects.list
权限。如需将对象 ACL 作为列表的一部分返回,您还必须拥有 storage.objects.getIamPolicy
权限。
您可以通过基本角色、预定义角色或自定义 IAM 角色获取所需权限。如需确定所需的角色,请参阅 Cloud Storage IAM 角色。 如需了解如何授予角色,请参阅使用 IAM。
客户端库
如需使用 Cloud Storage 客户端库完成本指南,您必须拥有适当的 IAM 权限。如果您要访问的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供具有必要权限的角色。
除非另有说明,否则客户端库请求通过 JSON API 发出,并且需要 JSON 方法的 IAM 权限中列出的权限。如需查看使用客户端库发出请求时调用了哪些 JSON API 方法,请记录原始请求。
如需查看相关 IAM 角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。
REST API
JSON API
如需使用 JSON API 列出对象,您必须对包含对象的存储桶或父级资源(例如存储桶所属的项目)拥有 storage.objects.list
权限。 如需返回对象 ACL,您还必须具有 storage.objects.getIamPolicy
权限。
您可以通过基本角色、预定义角色或自定义 IAM 角色获取所需权限。如需确定所需的角色,请参阅 Cloud Storage IAM 角色。 如需了解如何授予角色,请参阅使用 IAM。
如需详细了解所需权限,请参阅 JSON API 的 Cloud Storage IAM 权限。
列出存储桶中的对象
完成以下步骤以列出存储桶中的对象:
控制台
命令行
gcloud
将 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 ...
gsutil
使用带有 -r
标志的 gsutil ls
命令:
gsutil ls -r 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
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。如需了解相关说明,请参阅 API 身份验证。
-
curl -X GET -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o"
其中:
OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。BUCKET_NAME
是要列出其对象的存储分区的名称,例如my-bucket
。
使用 Cloud Storage JSON API 列出对象时,请考虑以下事项:
您可以使用
prefix=PREFIX
查询字符串参数将结果限制为仅显示具有指定前缀的对象。您可以使用
matchGlob=GLOB_PATTERN
查询字符串参数过滤结果以仅显示采用特定命名格式的对象。例如,可使用matchGlob=**.jpeg
来仅显示名称以.jpeg
结尾的所有对象。如需返回对象 ACL,请将值为
full
的projection
查询参数附加到请求。请注意,如果对存储桶启用了统一存储桶级访问权限,则系统会停用并无法返回 ACL。
XML API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。如需了解相关说明,请参阅 API 身份验证。
使用
cURL
,通过GET
Bucket 请求调用 XML API:curl -X GET -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?list-type=2"
其中:
OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。BUCKET_NAME
是要列出其对象的存储分区的名称,例如my-bucket
。
您可以使用
prefix=PREFIX
查询字符串参数将结果限制为具有指定前缀的对象。
后续步骤
- 从存储分区下载对象。
- 查看和修改对象元数据。
- 从存储分区中删除对象。
- 了解如何对结果进行分页。