对象读取和下载

本页面讨论了与 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 下载对象,请参阅 请求端点,了解 您可以使用的请求端点的完整介绍。

JSON API

使用 JSON API 时,您可以执行以下类型的下载:

XML API

使用 XML API 时,您可以执行以下类型的下载:

后续步骤