本页面讨论了与读取和下载 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 实例传输对象。