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

无法访问Google Cloud Storage Bucket:参数及权限问题排查

问题分析与修复方案

嘿,咱们来一步步拆解你遇到的问题,其实是几个不同的小问题凑到一起了:

1. 本地电脑的DefaultCredentialsError

这个问题很直白——本地环境没有配置Google Cloud的身份验证凭据。GCE虚拟机因为绑定了项目的默认服务账号,所以能自动获取凭据,但本地电脑不行。解决办法有两个:

  • 方法一:设置环境变量
    把GOOGLE_APPLICATION_CREDENTIALS环境变量指向你的服务账号密钥文件(JSON格式),比如在终端里:
    # Linux/macOS
    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
    
    # Windows(PowerShell)
    $env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-key.json"
    
  • 方法二:代码里显式加载凭据
    如果不想设置环境变量,也可以在代码里直接指定密钥文件:
    from google.cloud import storage
    from google.oauth2 import service_account
    
    credentials = service_account.Credentials.from_service_account_file('/path/to/your/key.json')
    client = storage.Client(credentials=credentials)
    

2. GCE虚拟机上的双重错误(403 + 400)

你看到的两个错误其实是连锁反应,先看JSON里的400错误:

Invalid string value: 'noAcl:'. Allowed values: [full, noacl]

这说明请求里的projection参数传错了——多了个冒号,正确值应该是noacl或者full。这个参数格式错误会导致请求不合法,进而触发后续的权限校验问题。

再看403错误:

606507140911-compute@developer.gserviceaccount.com does not have storage.buckets.get access to landsbyconst.

这里还有个关键细节:你代码里写的是client.get_bucket('landsst'),但错误信息里的Bucket名称是landsbyconst甚至lanst——明显是Bucket名称拼写错误!先确认你要访问的Bucket准确名称到底是什么,别打错字。

就算名称对了,GCE的默认服务账号也需要目标Bucket的storage.buckets.get权限,你可以这么配置:

  1. 登录Google Cloud Console,找到目标Bucket,进入「权限」页面
  2. 添加606507140911-compute@developer.gserviceaccount.com为成员
  3. 给它分配「Storage Bucket Viewer」或者「Storage Object Viewer」角色(根据你的实际需求选择)

另外,也可以尝试更新google-cloud-storage库,旧版本可能存在参数拼接的bug:

pip install --upgrade google-cloud-storage

3. 为什么自己创建的Bucket能正常访问?

因为你创建Bucket时,默认会给当前项目的服务账号(包括GCE的默认服务账号)分配对应的权限。而你现在访问的这个Bucket(不管是landsst还是错误里的landsbyconst),要么是其他项目的,要么是权限没有配置到位。

快速修复 Checklist

  • 本地:配置凭据环境变量或在代码里显式加载密钥
  • GCE:
    1. 修正Bucket名称的拼写错误
    2. 更新google-cloud-storage依赖库
    3. 给默认服务账号添加目标Bucket的访问权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:55:52