本页面讨论了与 Cloud Storage 中读取和下载对象相关的概念。
读取对象
读取对象是指通过开放的网络连接直接在内存中流式传输、使用或检查对象数据或特定字节范围。 检索到的载荷不会保存在本地,而是短暂存在于应用内存流、缓冲区、流水线或 CPU/GPU 内存中。读取对象适用于高性能、吞吐量密集型工作负载,例如将训练数据集和张量批次流式传输到人工智能 (AI) 和机器学习 (ML) 框架(如 Pytorch 或 Jax)。
以下列表介绍了 Cloud Storage 中可用的对象读取类型:
将对象读取到内存中或互动式对象读取:一种以 互动方式或将数据读取到内存中的方法。客户端会检索整个对象,并将其所有字节加载到连续变量、字节数组或内存中的字符串中。
流式读取:一种数据使用方法,即在从网络接收数据时直接以字节流的形式使用数据,而不是等待整个传输完成。
下载对象
下载对象是一项端到端任务,可将对象数据从 Cloud Storage 传输到本地文件系统、磁盘或目标存储设备上的永久性文件中。与内存中的流式读取不同,下载包括提取远程字节和将其提交到本地存储空间。下载对象主要适用于通用文件管理、本地归档、数据备份和离线实用程序使用。
使用 REST API 时,下载是使用 HTTP 或 HTTPS GET 请求执行的,这些请求可以包含可选的 Range 标头,该标头定义了要下载到永久性或本地存储空间的对象的特定部分。您还可以使用 Range 标头来恢复中断的下载。使用 gRPC 时,下载使用 storage.v2.Storage/ReadObject 或 BidiReadObject 流。
以下列表介绍了 Cloud Storage 中可用的对象下载类型:
简单下载:最基本的对象下载形式。客户端发送单个请求,以在一个连续传输中检索整个对象或指定的字节范围。
切片对象下载:一种高性能策略,即将单个大型 对象划分为多个较小的“切片”(也称为“块”)。客户端使用多个独立且并发的请求并行下载这些切片,然后在本地将这些切片重新组装成单个文件。
读取和下载对象的工具支持
控制台
使用 Google Cloud 控制台时,您可以执行以下对象读取 和下载:
命令行
使用 Google Cloud CLI 时,您可以执行以下对象读取和下载:
客户端库
C++
使用 C++ 客户端库时,您可以执行以下类型的读取和下载:
C#
使用 C# 客户端库时,您可以执行以下类型的读取和下载:
Go
使用 Go 客户端库时,您可以执行以下类型的读取和下载:
Java
使用 Java 客户端库时,您可以执行以下类型的读取和下载:
Node.js
使用 Node.js 客户端库时,您可以执行以下类型的读取和下载:
PHP
使用 PHP 客户端库时,您可以执行以下类型的读取和下载:
Python
使用 Python 客户端库时,您可以执行以下类型的读取和下载:
Ruby
使用 Ruby 客户端库时,您可以执行以下类型的读取和下载:
REST API
如果您使用 REST API 下载对象,请参阅 请求端点,了解 您可以使用的请求端点的完整介绍。
后续步骤
- 使您的数据可被公开访问。
- 了解如何使用校验和进行对象下载。
- 了解对象上传。
- 查看和修改对象元数据。
- 了解如何使用 Storage Transfer Service 将数据传输到 Cloud Storage。
- 从 Compute Engine 实例传输对象。