如何下载云存储bucket中的对象?Google Cloud Console无法下载怎么办
GCS Bucket 非控制台图片下载方案
1. gsutil 命令行工具
这是Google Cloud官方提供的命令行管理工具,集成在Google Cloud SDK中:
- 提前完成Google Cloud SDK安装和身份认证(执行
gcloud auth login登录对应权限的账号) - 单张图片下载命令:
gsutil cp gs://<bucket名称>/<图片在bucket内的完整路径> <本地保存路径> - 批量下载某个目录下所有图片可增加递归参数:
gsutil cp -r gs://<bucket名称>/<图片目录> <本地保存目录>
2. 官方语言SDK
支持Python、Java、Go等多种主流编程语言,以Python为例:
- 先安装依赖包:
pip install google-cloud-storage - 下载代码示例:
from google.cloud import storage # 初始化客户端,默认读取本地gcloud认证信息或服务账号密钥 client = storage.Client() # 指定bucket名称 bucket = client.get_bucket("替换为你的bucket名") # 指定要下载的图片对象路径 blob = bucket.blob("替换为图片在bucket内的路径") # 下载到本地指定路径 blob.download_to_filename("替换为本地保存路径/文件名.jpg")
3. REST API 直接请求
- 若图片权限为公共读,直接在浏览器访问以下地址即可下载:
https://storage.googleapis.com/<bucket名称>/<图片路径> - 若为私有对象,携带OAuth 2.0认证令牌发送GET请求即可:
https://storage.googleapis.com/storage/v1/b/<bucket名称>/o/<URL编码后的图片路径>?alt=media
4. 签名URL下载
如果需要临时给无权限的身份提供下载能力,可生成有时效性的签名URL:
- 用gsutil生成签名URL的命令:
gsutil signurl -d <有效期,比如1h表示1小时> <本地服务账号密钥JSON文件路径> gs://<bucket名称>/<图片路径> - 执行后会生成可直接访问的下载链接,任意设备在有效期内都可通过该链接下载图片
注意:所有下载方式都要求操作身份具备目标对象的storage.objects.get权限,否则会返回权限拒绝错误
内容的提问来源于stack exchange,提问作者Rashmi
相关产品推荐
相关产品推荐

