本页面介绍如何将对象从 Cloud Storage 中的存储桶下载到永久性存储。您还可以将对象下载到内存中。
所需的角色
为了获得下载对象所需的权限,请让您的管理员向您授予存储桶的 Storage Object Viewer (roles/storage.objectViewer
) 角色。如果您计划使用 Google Cloud 控制台,请让管理员向您授予存储桶的 Storage Admin (roles/storage.admin
) 角色。
这些角色包含下载对象所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.buckets.list
- 只有在使用 Google Cloud 控制台执行本页面上的任务时,才需要此权限。
storage.objects.get
storage.objects.list
- 只有在使用 Google Cloud 控制台执行本页面上的任务时,才需要此权限。
如需了解如何授予存储桶的角色,请参阅将 IAM 与存储桶搭配使用。
从存储桶下载对象
按照以下说明从存储桶下载对象:
控制台
- 在 Google Cloud 控制台中,进入 Cloud Storage 存储桶页面。
在存储桶列表中,找到包含要下载的对象的存储桶,并点击其名称。
此时会打开“存储桶详情”页面,其中“对象”标签页已选中。
导航到可能位于文件夹中的对象。
点击与对象关联的下载图标。
您的浏览器设置可控制对象的下载位置。
如需了解如何在 Google Cloud 控制台中获取有关失败的 Cloud Storage 操作的详细错误信息,请参阅问题排查。
命令行
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME SAVE_TO_LOCATION
其中:
BUCKET_NAME
是包含要下载的对象的存储桶名称,例如my-bucket
。OBJECT_NAME
是要下载的对象的名称,例如pets/dog.png
。SAVE_TO_LOCATION
是保存对象的本地路径,例如Desktop/Images
。
如果成功,则响应类似如下示例:
Completed files 1/1 | 164.3kiB/164.3kiB
如果下载在完成之前中断,请运行相同的 cp
命令以从中断处恢复下载。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例会下载单个对象:
以下示例使用多个进程下载多个对象:
以下示例使用多个进程下载具有公共前缀的所有对象:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例会下载单个对象:
以下示例使用多个进程下载多个对象:
以下示例使用多个进程下载具有公共前缀的所有对象:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
以下示例会下载单个对象:
以下示例使用多个进程下载多个对象:
以下示例使用多个进程下载存储桶中的所有对象:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以创建访问令牌(使用 OAuth 2.0 Playground),并将其包含在
Authorization
标头中。使用
cURL
,通过GET
Object 请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
其中:
SAVE_TO_LOCATION
是您想要将对象保存到的位置的路径,例如Desktop/dog.png
。BUCKET_NAME
是包含要下载的对象的存储桶名称,例如my-bucket
。OBJECT_NAME
是要下载的对象的网址编码名称。例如,pets/dog.png
的网址编码为pets%2Fdog.png
。
XML API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以创建访问令牌(使用 OAuth 2.0 Playground),并将其包含在
Authorization
标头中。使用
cURL
,通过GET
Object 请求调用 XML API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
其中:
SAVE_TO_LOCATION
是您想要将对象保存到的位置的路径,例如Desktop/dog.png
。BUCKET_NAME
是包含要下载的对象的存储桶名称,例如my-bucket
。OBJECT_NAME
是要下载的对象的网址编码名称。例如,pets/dog.png
的网址编码为pets%2Fdog.png
。
如需更高效地下载存储桶或子目录中的所有对象,请使用 gcloud storage cp
命令或客户端库。
下载对象的一部分
如果下载中断,您可以通过仅请求剩余的对象部分,从上次中断的位置继续下载。按照以下说明下载对象的一部分。
控制台
Google Cloud 控制台不支持下载对象的各个部分。请改用 gcloud CLI。
命令行
除非执行流式下载,否则 Google Cloud CLI 会自动尝试恢复中断的下载。如果下载中断,则部分下载的临时文件会显示在目标层次结构中。运行相同的 cp
命令,以从上次停下的地方继续下载。
下载完成后,临时文件会被删除并替换为下载的内容。临时文件存储在可配置的位置,该位置默认位于用户主目录的 .config/gcloud/surface_data/storage/tracker_files
下。您可以运行 gcloud config get storage/tracker_files_directory
来更改或查看临时文件的存储位置。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST API
JSON API
请在请求中使用 Range
标头下载对象的一部分。
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以创建访问令牌(使用 OAuth 2.0 Playground),并将其包含在
Authorization
标头中。使用
cURL
,通过GET
Object 请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-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"
其中:
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
标头下载对象的一部分。
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。或者,您可以创建访问令牌(使用 OAuth 2.0 Playground),并将其包含在
Authorization
标头中。使用
cURL
,通过GET
Object 请求调用 XML API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Range: bytes=FIRST_BYTE-LAST_BYTE" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
其中:
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