本页面介绍如何从 Cloud Storage 中的存储分区下载对象。如需查看概念性概览,请参阅上传和下载。
前提条件
前提条件因所使用的工具而异:
控制台
如需使用 Google Cloud Console 完成本指南,您必须拥有适当的 IAM 权限。如果您要下载的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供具有必要权限的角色。
如需查看特定操作所需权限的列表,请参阅 Google Cloud Console 的 IAM 权限。
如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。
命令行
为使用命令行实用程序完成本指南,您必须拥有适当的 IAM 权限。如果您要下载的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供具有必要权限的角色。
如需查看特定操作所需权限的列表,请参阅 gsutil 命令的 IAM 权限。
如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。
代码示例
如需使用 Cloud Storage 客户端库完成本指南,您必须拥有适当的 IAM 权限。如果您要下载的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供具有必要权限的角色。除非另有说明,否则客户端库请求通过 JSON API 发出。
如需查看特定操作所需的权限列表,请参阅 JSON 方法的 IAM 权限。
如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。
REST API
JSON API
如需使用 JSON API 完成本指南,您必须拥有适当的 IAM 权限。如果您要下载的存储桶在不是由您创建的项目中,则可能需要项目所有者为您提供具有必要权限的角色。
如需查看特定操作所需的权限列表,请参阅 JSON 方法的 IAM 权限。
如需查看相关角色的列表,请参阅 Cloud Storage 角色。或者,您也可以创建一个自定义角色,并为其提供具体受限的权限。
从存储桶下载对象
按照以下说明从存储桶下载对象:
控制台
- 在 Google Cloud Console 中,转到 Cloud Storage 的浏览器页面。
在存储分区列表中,找到包含要下载的对象的存储分区,并点击其名称。
此时会打开“存储分区详情”页面,其中“对象”标签页已选中。
导航到可能位于文件夹中的对象。
点击与对象关联的下载图标。
您的浏览器设置可控制对象的下载位置。
如需了解如何获取有关 Cloud Storage 浏览器中失败操作的详细错误信息,请参阅问题排查。
命令行
使用 gsutil cp
命令:
gsutil cp gs://BUCKET_NAME/OBJECT_NAME SAVE_TO_LOCATION
其中:
BUCKET_NAME
是包含要下载的对象的存储分区名称,例如my-bucket
。OBJECT_NAME
是要下载的对象的名称,例如pets/dog.png
。SAVE_TO_LOCATION
是保存对象的本地路径,例如Desktop/Images
。
如果成功,则响应类似如下示例:
Operation completed over 1 objects/58.8 KiB.
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
以下示例会将对象下载到文件中:
以下示例会将对象下载到内存中:
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
以下示例会将对象下载到文件中:
以下示例会将对象下载到内存中:
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
以下示例会将对象下载到文件中:
以下示例会将对象下载到内存中:
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
以下示例会将对象下载到文件中:
以下示例会将对象下载到内存中:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
以下示例会将对象下载到文件中:
以下示例会将对象下载到内存中:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
以下示例会将对象下载到文件中:
以下示例会将对象下载到内存中:
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
以下示例会将对象下载到文件中:
以下示例会将对象下载到内存中:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
以下示例会将对象下载到文件中:
以下示例会将对象下载到内存中:
REST API
JSON API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。 如需了解相关说明,请参阅 API 身份验证。
使用
cURL
,通过GET
Object 请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
其中:
OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。SAVE_TO_LOCATION
是您想要将对象保存到的位置的路径,例如Desktop/dog.png
。BUCKET_NAME
是包含要下载的对象的存储分区名称,例如my-bucket
。OBJECT_NAME
是要下载的对象的网址编码名称。例如,pets/dog.png
的网址编码为pets%2Fdog.png
。
XML API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。 如需了解相关说明,请参阅 API 身份验证。
使用
cURL
,通过GET
Object 请求调用 XML API:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
其中:
OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。SAVE_TO_LOCATION
是您想要将对象保存到的位置的路径,例如Desktop/dog.png
。BUCKET_NAME
是包含要下载的对象的存储分区名称,例如my-bucket
。OBJECT_NAME
是要下载的对象的网址编码名称。例如,pets/dog.png
的网址编码为pets%2Fdog.png
。
要轻松下载存储分区或子目录中的所有对象,请使用 gsutil cp
命令。
下载对象的一部分
如果下载中断,您可以通过仅请求剩余的对象部分,从上次中断的位置继续下载。按照以下说明下载对象的一部分。
控制台
Cloud Console 不支持下载对象的各个部分。请改为使用 gsutil。
命令行
除非执行流式传输,否则 gsutil 会自动尝试继续中断的下载。如果下载中断,则部分下载的临时文件会显示在目标目录中。运行相同的 cp
命令,以从上次停下的地方继续下载。
下载完成后,原始文件会被删除并替换为下载的内容。可续传传输会将状态信息存储在 ~/.gsutil
下的文件中,这些文件以目标对象或文件命名。
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
REST API
JSON API
请在请求中使用 Range
标头下载对象的一部分。
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。 如需了解相关说明,请参阅 API 身份验证。
使用
cURL
,通过GET
Object 请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Range: bytes=FIRST_BYTE-LAST_BYTE" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
其中:
OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。FIRST_BYTE
是您要下载的字节范围内的第一个字节。例如1000
。LAST_BYTE
是您要下载的字节范围内的最后一个字节。例如1999
。SAVE_TO_LOCATION
是您想要将对象保存到的位置的路径,例如Desktop/dog.png
。BUCKET_NAME
是包含要下载的对象的存储分区名称,例如my-bucket
。OBJECT_NAME
是要下载的对象的网址编码名称。例如,pets/dog.png
的网址编码为pets%2Fdog.png
。
XML API
请在请求中使用 Range
标头下载对象的一部分。
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。 如需了解相关说明,请参阅 API 身份验证。
使用
cURL
,通过GET
Object 请求调用 XML API:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Range: bytes=FIRST_BYTE-LAST_BYTE" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
其中:
OAUTH2_TOKEN
是您在第 1 步中生成的访问令牌。FIRST_BYTE
是您要下载的字节范围内的第一个字节。例如1000
。LAST_BYTE
是您要下载的字节范围内的最后一个字节。例如1999
。SAVE_TO_LOCATION
是您想要将对象保存到的位置的路径,例如$HOME/Desktop/dog.png
。BUCKET_NAME
是包含要下载的对象的存储分区名称,例如my-bucket
。OBJECT_NAME
是要下载的对象的网址编码名称。例如,pets/dog.png
的网址编码为pets%2Fdog.png
。
后续步骤
- 阅读有关上传和下载的概念性概览。
- 了解如何执行流式下载。
- 从云服务提供商或其他在线来源转移数据(例如,使用网址列表)。
- 将对象转移到 Compute Engine 实例。
- 了解如何向请求者收取 Cloud Storage 访问费用。
- 了解 Cloud Storage 如何处理已解压的 gzip 压缩文件。
自行试用
如果您是 Google Cloud 新手,请创建一个帐号来评估 Cloud Storage 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
免费试用 Cloud Storage