本页面介绍如何将对象从 Cloud Storage 中的存储桶下载到永久性存储。您还可以将对象下载到内存中。
所需的角色
为了获得下载对象所需的权限,请让您的管理员向您授予存储桶的 Storage Object Viewer (roles/storage.objectViewer
) 角色。如果您计划使用Trusted Cloud 控制台,请让管理员向您授予存储桶的 Storage Admin (roles/storage.admin
) 角色。
这些角色包含下载对象所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
storage.buckets.list
- 只有在使用 Trusted Cloud 控制台执行本页面上的任务时,才需要此权限。
storage.objects.get
storage.objects.list
- 只有在使用 Trusted Cloud 控制台执行本页面上的任务时,才需要此权限。
如需了解如何授予存储桶的角色,请参阅将 IAM 与存储桶搭配使用。
从存储桶下载对象
按照以下说明从存储桶下载对象:
控制台
- 在 Trusted Cloud 控制台中,转到 Cloud Storage 存储桶页面。
在存储桶列表中,找到包含要下载的对象的存储桶,并点击其名称。
此时会打开“存储桶详情”页面,其中“对象”标签页已选中。
导航到可能位于文件夹中的对象。
点击与对象关联的下载图标。
您的浏览器设置可控制对象的下载位置。
如需了解如何在 Trusted 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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 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
,通过GET
Object 请求调用 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
,通过GET
Object 请求调用 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 .
下载对象的一部分
如果下载中断,您可以通过仅请求剩余的对象部分,从上次中断的位置继续下载。按照以下说明下载对象的一部分。
控制台
Trusted 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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 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
,通过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.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
,通过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.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 压缩文件。