对象读取和下载

本页面讨论了与读取和下载 Cloud Storage 中的对象相关的概念。

读取对象

读取对象是指通过开放的网络连接直接在内存中流式传输、使用或检查对象数据或特定字节范围。检索到的载荷不会保存到本地,而是临时存储在应用内存流、缓冲区、流水线或直接存储在 CPU/GPU 内存中。读取对象适合高性能、吞吐量密集型工作负载,例如将流式训练数据集和张量批次传输到人工智能 (AI) 和机器学习 (ML) 框架(如 Pytorch 或 Jax)。

以下列表介绍了 Cloud Storage 中可用的对象读取类型:

  • 将对象读入内存或交互式对象读取:一种以交互方式或将数据读入内存的方法。客户端会检索整个对象,并将其所有字节加载到连续的变量、字节数组或内存中的字符串中。

  • 流式读取:一种方法,即在从网络接收数据时,直接以字节流的形式使用数据,而不是等待整个传输过程完成。

下载对象

下载对象是一项端到端任务,可将对象数据从 Cloud Storage 转移到本地文件系统、磁盘或目标存储设备上的持久性文件中。与内存中流式读取不同,下载包括提取远程字节和将这些字节提交到本地存储。下载对象主要适用于通用文件管理、本地归档、数据备份和离线实用程序使用。

使用 REST API 时,下载操作通过 HTTP 或 HTTPS GET 请求执行,该请求可包含可选的 Range 标头,用于定义要下载到持久性存储空间或本地存储空间的对象特定部分。您还可以使用 Range 标头恢复中断的下载。使用 gRPC 时,下载使用 storage.v2.Storage/ReadObjectBidiReadObject 流。

以下列表介绍了 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 时,您可以执行以下类型的下载:

后续步骤