You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST API实现GCP Cloud Storage存储桶批量文件下载

GCP Cloud Storage 递归下载存储桶REST API实现方案

核心实现逻辑

你可以任选以下两种方案实现和gsutil cp -r gs://my_bucket完全等效的效果:

方案1:先列全量文件再逐个下载(兼容所有场景)

操作步骤如下:

  • 拉取存储桶全量文件列表
    发送GET请求到地址:https://storage.googleapis.com/storage/v1/b/{你的存储桶名称}/o
    若使用用户提供的授权令牌鉴权,请求头添加:Authorization: Bearer {用户传入的授权令牌}
    无需添加delimiter参数即可递归获取所有子目录下的文件,返回结果的items数组中每个元素的name字段即为对应文件的存储路径。如果文件数量超过单页上限,用返回的nextPageToken作为下一次请求的pageToken参数即可拉取剩余文件。
  • 逐个下载文件
    对每个文件发送GET请求到地址:https://storage.googleapis.com/storage/v1/b/{你的存储桶名称}/o/{URL编码后的文件路径}?alt=media,携带相同的鉴权信息即可下载对应文件。如果用户提供的是单文件签名URL,直接GET请求该签名URL即可完成下载,无需额外鉴权头。
    注意:文件路径如果包含中文、空格或其他特殊字符,需要先做URL编码后再拼接到请求地址中

方案2:一次性打包下载整个存储桶(操作最便捷)

如果不需要单独处理每个文件的下载逻辑,可以直接调用打包下载接口,一次性获取整个存储桶的压缩包,和gsutil cp -r的效果完全一致:
发送POST请求到地址:https://storage.googleapis.com/storage/v1/b/{你的存储桶名称}/o?alt=media&archiveFormat=zip
携带对应鉴权头后,接口会直接返回整个存储桶所有文件打包后的ZIP二进制流,保存到本地解压即可得到全量文件。

不同凭证类型适配规则

  • 用户传入存储桶URL+授权令牌:按上述接口格式拼接存储桶名称,所有请求添加Authorization: Bearer {令牌}头即可
  • 用户传入签名URL:如果是单文件签名URL直接GET请求;如果是存储桶级签名URL,直接在签名URL基础上拼接对应接口参数即可调用,无需额外添加鉴权头。

内容的提问来源于stack exchange,提问作者Uri Shapira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:39:03