上传和下载

本页面讨论了有关上传和下载对象的概念。您可以上传和存储大小不超过 5 TiB 的任何 MIME 类型数据。

上传

您可以通过以下方式向 Cloud Storage 发送上传请求:

  • 单一请求上传。一种上传方法,其中对象作为单一请求上传。如果文件足够小,以便在连接失败时完整上传此文件,则可以使用此选项。 如需查看单一请求上传指南,请参阅从文件上传对象从内存上传对象

  • 可续传上传。提供更可靠的传输(这对于大型文件尤为重要)的上传方法。对于大多数应用来说,可续传上传是一种很好的方式,因为该方式也适用于小型文件(只不过每次上传时都要多发出一个 HTTP 请求)。您还可以使用可续传上传来执行流式传输,以便上传未知大小的对象。

  • XML API 分段上传。与 Amazon S3 分段上传兼容的上传方法。系统会将文件部分上传,并使用最终请求合并成单个对象。借助 XML API 分段上传,您可以并行上传各部分,从而缩短完成总体上传所需的时间。

使用这些基本上传类型,您可以实施更高级的上传策略:

  • 并行复合上传。一种上传策略,即将文件拆分为多个分块,然后并行上传这些分块。与 XML API 分段上传不同,并行复合上传使用组合操作,并且最终对象会存储为复合对象。

  • 流式上传。一种上传方法,可让您上传数据而无需先将数据保存到文件中;当您不知道上传开始时的上传总大小时,该方法非常有用。

  • 分块传输编码上传。包含标头 Transfer-Encoding: chunked 的单一请求上传,允许以多个顺序数据块的形式发送上传内容。

上传大小注意事项

在选择使用单一请求上传而不是可续传上传或 XML API 多部分上传时,请考虑在网络故障需要的时间里,您将丢失多少内容需要重启以便从头开始。为了提高连接速度,临界值大小通常可以设置得较大。

例如,假设您愿意容忍 30 秒的损失时间:

  • 如果通过平均上传速度为 8 Mbps 的本地系统上传,则可以对大小超过 30 MB 的文件使用单一请求上传。

  • 如果您通过平均上传速度为 500 Mbps 的地区内服务上传,则文件的临界值大小差不多为 2 GB。

下载

从 Cloud Storage 执行的所有下载都具有相同的基本行为:可包含可选 Range 标头的 HTTP 或 HTTPS GET 请求,该标头定义了要下载的对象的特定部分。

使用此基本下载行为,您可以恢复中断的下载,并且可以使用更高级的下载策略,例如切片对象下载流式下载

每个工具提供的支持

控制台

使用 Google Cloud 控制台时,您可以执行以下类型的上传和下载:

命令行

使用 Google Cloud CLI 时,您可以执行以下类型的上传和下载:

客户端库

C++

使用 C++ 客户端库时,您可以执行以下类型的上传和下载:

C#

使用 C# 客户端库时,您可以执行以下类型的上传和下载:

Go

使用 Go 客户端库时,您可以执行以下类型的上传和下载:

Java

使用 Java 客户端库时,您可以执行以下类型的上传和下载:

Node.js

使用 Node.js 客户端库时,您可以执行以下类型的上传和下载:

PHP

使用 PHP 客户端库时,您可以执行以下类型的上传和下载:

Python

使用 Python 客户端库时,您可以执行以下类型的上传和下载:

Ruby

使用 Ruby 客户端库时,您可以执行以下类型的上传和下载:

Terraform

使用 Terraform 时,您可以执行单一请求上传。如果上传的文件大于 16 MiB,系统会自动进行可续传上传。

REST API

如果您使用 REST API 进行上传和下载,请参阅请求端点,了解您可以使用的请求端点的完整介绍。

后续步骤