如何在非Google Cloud服务器用Python读取GCS公开CSV文件?
解决Google Cloud Storage读取共享CSV的项目未指定错误
嘿,我来帮你搞定这个问题!你遇到的Project was not passed错误,核心原因是默认的storage.Client()必须关联一个GCP项目,但你没有项目,而且你要读取的是已共享的文件,完全没必要走常规的认证流程。另外你的代码里还有个小错误,我一起帮你修正:
首先修正两个关键问题
- Bucket名称参数错误:
get_bucket()的参数应该是bucket的实际名称,不是路径格式。比如如果你的文件在名为stats的bucket里,文件路径是installs/installs_overview.csv,那bucket名就是stats,不是/stats/installs。 - 使用匿名客户端:因为没有GCP项目,且文件是共享可访问的,直接用匿名客户端就能免认证访问。
修正后的完整代码
from google.cloud import storage # 创建无需认证的匿名客户端,不需要GCP项目 client = storage.Client.create_anonymous_client() # 替换成你的实际bucket名称 bucket = client.get_bucket("stats") # 替换成文件在bucket内的完整路径(包含前缀目录) blob = bucket.blob("installs/installs_overview.csv") # 下载内容并解码为可读的字符串 content = blob.download_as_string().decode('utf-8') print(content)
额外注意事项
- 确保你的CSV文件是公开可读的:可以直接在浏览器打开
https://storage.googleapis.com/<你的bucket名>/<文件路径>,如果能正常下载或查看,说明文件权限符合要求,匿名客户端就能访问。 - 如果文件是通过IAM共享给特定用户(非公开),那你还是需要获取对应服务账号的密钥文件,设置环境变量
GOOGLE_APPLICATION_CREDENTIALS指向该文件,但这种情况你可能需要有相关项目权限,和你说的“并无项目”情况不太匹配,所以优先按公开共享场景处理。
内容的提问来源于stack exchange,提问作者PepeVelez
相关产品推荐
相关产品推荐

