本页面介绍如何将对象数据从 Cloud Storage 存储桶直接读取到应用内存中,或在 Web 浏览器或命令行终端中以交互方式读取。如果您想以避免与将文件写入持久性本地文件系统相关的 CPU、磁盘 I/O 和延迟开销的方式来流式传输、检查或处理数据,建议将对象读入内存或以交互方式读取。
如需了解如何将对象下载到永久性存储空间或本地存储空间,请参阅下载对象。如需从概念上大致了解对象读取和下载,请参阅对象读取和下载。
所需的角色
如需获得读取对象数据所需的权限,请让您的管理员为您授予以下 IAM 角色:
- 针对存储桶的 Storage Object Viewer (
roles/storage.objectViewer) - 项目的 Storage Admin (
roles/storage.admin)(仅在使用 Google Cloud 控制台读取对象数据时需要)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
Storage Object Viewer (roles/storage.objectViewer) 角色包含读取对象所需的 storage.objects.get 权限。Storage Admin (roles/storage.admin) 角色包含 storage.buckets.list 和 storage.buckets.get 权限,以及 storage.objects.get 权限。必须拥有这些权限才能列出项目中的存储桶并查看有关存储桶的信息。只有在您想使用 Google Cloud 控制台以交互方式读取对象时,才需要包含这些权限的 Storage Admin (roles/storage.admin) 角色。
如需了解如何授予存储桶的角色,请参阅为存储桶设置和管理 IAM 政策。
以编程方式将对象读取到内存中
本部分介绍了如何通过将对象字节直接流式传输到应用内存中来读取对象数据。
客户端库
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
以交互方式读取对象
本部分介绍如何在Google Cloud 控制台浏览器窗口或命令行终端 stdout 中以交互方式读取对象。
控制台
- 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。
在存储桶列表中,点击您要查看其内容的存储桶的名称。
在对象标签页上,点击要读取的对象的名称。
在对象详情页面上,点击对象的公开网址或经过身份验证的网址,以读取其数据。
命令行
如需将对象的字节载荷直接流式传输到终端 stdout,请使用 gcloud storage cat 命令:
gcloud storage cat gs://BUCKET_NAME/OBJECT_NAME
替换以下内容:
BUCKET_NAME:包含您要读取的对象的存储桶的名称。例如my-bucket。OBJECT_NAME:您要读取的对象的名称。例如dog.png。
REST API
如需读取对象的字节并将输出流定向到终端 stdout,请按照以下说明操作。
JSON API
安装并初始化 gcloud CLI,以便为
Authorization标头生成访问令牌。使用
cURL,通过包含-o -选项和alt=media查询参数的objects.get请求调用 JSON API:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o - \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
替换以下内容:
BUCKET_NAME:包含要读取的对象的存储桶的名称。例如my-bucket。OBJECT_NAME:要读取的对象的网址编码名称。例如,pets/dog.png的网址编码为pets%2Fdog.png。
XML API
安装并初始化 gcloud CLI,以便为
Authorization标头生成访问令牌。使用
cURL,通过GETObject 请求调用 XML API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
替换以下内容:
BUCKET_NAME:包含要读取的对象的存储桶的名称。例如my-bucket。OBJECT_NAME:要读取的对象的网址编码名称。例如,pets/dog.png的网址编码为pets%2Fdog.png。
后续步骤
- 从云服务商或其他在线来源转移数据,例如网址列表。