本页面讨论了有关上传和下载对象的概念。您可以上传和存储大小不超过 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 客户端库时,您可以执行以下类型的上传和下载:
- 简单下载
- 切片对象下载
- 支持单一请求上传和可续传上传(取决于文件大小)
- XML API 分段上传
Ruby
使用 Ruby 客户端库时,您可以执行以下类型的上传和下载:
Terraform
使用 Terraform 时,您可以执行单一请求上传。如果上传的文件大于 16 MiB,系统会自动进行可续传上传。
REST API
JSON API
使用 JSON API 时,您可以执行以下类型的上传和下载:
XML API
使用 XML API 时,您可以执行以下类型的上传和下载:
如果您使用 REST API 进行上传和下载,请参阅请求端点,了解您可以使用的请求端点的完整介绍。
后续步骤
- 从 Compute Engine 实例传输对象。
- 使您的数据可被公开访问。
- 查看和修改对象元数据。
- 了解如何使用 Storage Transfer Service 将数据传输到 Cloud Storage。