Cloud Storage 支持将数据从存储桶流式传输到进程,而无需先将数据保存到文件中。
流式传输时使用校验和验证
如果您需要在数据可访问之前进行校验和验证,则不应使用流式下载。这是因为流式下载使用 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 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为客户端库设置身份验证。