使用gsutil下载公开GCS存储桶MacOS10.13SDK报403错误如何解决
问题根因
emu-dev-development是公开可读的GCS存储桶,你碰到的403和Python版本、gsutil安装、gcloud init流程都没关系。
完成gcloud init后,gsutil会默认绑定你当前登录的谷歌账号身份发起所有请求。这个存储桶只对谷歌内部开发账号开放storage.objects.list权限,但对所有匿名用户开放对象下载权限;当请求携带了没有对应权限的身份凭证时,GCS会直接返回403,不会自动切换到匿名访问逻辑。
解决方法
不需要申请桶权限,也不需要给你自己新建的GCP项目做任何额外配置,选下面任意一种方式就能正常下载:
- 临时单次下载:执行命令时临时禁用凭证加载,强制走匿名访问
CLOUDSDK_AUTH_DISABLE_CREDENTIALS=1 gsutil cp gs://emu-dev-development/MacOSX10.13.sdk.tar.gz . - 长期适配公开GCS资源访问:编辑用户根目录下的
.boto配置文件,在[Credentials]段落添加如下配置,之后访问公开GCS资源会默认走匿名逻辑;如果后续要访问自己账号下的私有桶,把这行注释掉就行gs_anonymous = True
别浪费时间去GCP控制台申请这个桶的访问权限,这是安卓模拟器开发组的内部桶,外部账号不可能拿到桶列表权限,匿名下载本身就是官方文档默认支持的SDK获取方式。
内容的提问来源于stack exchange,提问作者philolegein
相关产品推荐
相关产品推荐

