Cloud Storage 支持流式对象读取,这允许应用或进程通过网络连接实时直接使用对象字节流,而无需将数据副本保存到本地磁盘或永久性存储空间。
如果您想下载对象并将其保存到本地文件系统,请参阅将对象下载为文件。
流式传输读取时使用校验和验证
如果您需要在处理数据之前进行校验和验证,则不应使用流式读取。由于流式读取通常使用 HTTP Range 标头,因此 Cloud Storage 不会返回仅适用于任意所请求的对象数据部分的校验和。服务器校验和会验证整个对象,这意味着在完整的数据流完成并验证之前,可能会读取和处理损坏的数据。
所需的角色
为了获得流式读取所需的权限,请让您的管理员向您授予存储桶的 Storage Object Viewer (roles/storage.objectViewer) 角色。
此角色包含流式读取所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.objects.get
如需了解如何授予存储桶的角色,请参阅为存储桶设置和管理 IAM 政策。
以流式传输方式读取对象
以下示例展示了如何执行从 Cloud Storage 对象到进程的流式读取:
控制台
Google Cloud 控制台不支持流式读取。请改用 Google Cloud CLI。
命令行
运行
gcloud storage cp命令(注意使用短划线表示目标网址),然后将数据传输到该进程:gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME - | PROCESS_NAME
其中:
BUCKET_NAME是包含对象的存储分区的名称。例如my_app_bucket。OBJECT_NAME是您要流式传输到进程的对象的名称。例如data_measurements。PROCESS_NAME是您要向其输送数据的进程的名称。例如analyze_data。
您还可以将数据从 Cloud Storage 对象流式传输到标准 Linux 命令,比如 sort:
gcloud storage cp gs://my_app_bucket/data_measurements - | sort
客户端库
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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。