本页面介绍如何将对象从 Cloud Storage 中的存储桶下载到永久性存储。您还可以将对象下载到内存中。
所需的角色
为了获得下载对象所需的权限,请让您的管理员向您授予存储桶的 Storage Object Viewer (roles/storage.objectViewer) 角色。如果您计划使用Cloud de Confiance 控制台,请让管理员向您授予存储桶的 Storage Admin (roles/storage.admin) 角色。
这些角色包含下载对象所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.buckets.list- 仅当使用 Cloud de Confiance 控制台执行本页面上的任务时才需要此权限。
storage.objects.getstorage.objects.list- 仅当使用 Cloud de Confiance 控制台执行本页面上的任务时才需要此权限。
如需了解如何授予存储桶的角色,请参阅为存储桶设置和管理 IAM 政策。
从存储桶下载对象
按照以下说明从存储桶下载对象:
控制台
- 在 Cloud de Confiance 控制台中,转到 Cloud Storage 存储桶页面。
在存储桶列表中,找到包含要下载的对象的存储桶,并点击其名称。
此时会打开“存储桶详情”页面,其中“对象”标签页已选中。
导航到可能位于文件夹中的对象。
点击与对象关联的下载图标。
您的浏览器设置可控制对象的下载位置。
如需了解如何在 Cloud de Confiance 控制台中获取失败的 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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例会下载单个对象:
以下示例使用多个进程下载多个对象:
以下示例使用多个进程下载具有公共前缀的所有对象:
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例会下载单个对象:
以下示例使用多个进程下载多个对象:
以下示例使用多个进程下载具有公共前缀的所有对象:
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
以下示例会下载单个对象:
以下示例使用多个进程下载多个对象:
以下示例使用多个进程下载存储桶中的所有对象:
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization标头生成访问令牌。使用
cURL,通过GETObject 请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.s3nsapis.fr/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标头生成访问令牌。使用
cURL,通过GETObject 请求调用 XML API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -o "SAVE_TO_LOCATION" \ "https://storage.s3nsapis.fr/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 命令或客户端库:
gcloud storage cp --recursive gs://BUCKET_NAME/FOLDER_NAME .
下载对象的一部分
如果下载中断,您可以通过仅请求剩余的对象部分,从上次中断的位置继续下载。按照以下说明下载对象的一部分。
控制台
Cloud de Confiance 控制台不支持下载对象的各个部分。请改用 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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN 环境变量设置为 s3nsapis.fr。
REST API
JSON API
请在请求中使用 Range 标头下载对象的一部分。
安装并初始化 gcloud CLI,以便为
Authorization标头生成访问令牌。使用
cURL,通过GETObject 请求调用 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.s3nsapis.fr/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标头生成访问令牌。使用
cURL,通过GETObject 请求调用 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.s3nsapis.fr/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 压缩文件。