通过gsutil与Google Cloud Storage下载Google Play Console统计数据报错排查
问题根因与解决方案
直接报错原因
你收到的zsh: no matches found: gs://xxx报错本质是zsh shell的默认机制导致:zsh会先对命令中的通配符*做本地文件名匹配扩展,你当前本地目录下没有符合该URI格式的文件,所以zsh直接抛出错误,请求根本没有发送给gsutil工具。
分步解决方法
第一步:修复zsh通配符问题
任选一种方案即可:
- 给包含通配符的URI包裹单引号,屏蔽zsh的本地扩展:
gsutil cp -r 'gs://pubsite_prod_xxxxxx/stats/installs/installs_com.my.package_2021*' .
- 临时关闭当前命令的通配符扩展规则:
noglob gsutil cp -r gs://pubsite_prod_xxxxxx/stats/installs/installs_com.my.package_2021* .
第二步:排查权限与存储桶可见性问题
如果执行完第一步仍有报错,再排查以下问题:
- Google Play的报告存储桶是Play官方托管的独立资源,不属于你自行创建的GCP项目,所以你在自己的GCP项目存储桶列表中看不到是正常情况,无需寻找对应项目。
- 确认当前gsutil登录的Google账号,和你在Play Console获取存储桶URI的账号一致,且该账号在Play Console内拥有查看应用统计数据、下载报告的权限。
- 你可以先执行
gsutil ls gs://pubsite_prod_xxxxxx/测试能否正常列出存储桶内容,如果返回权限错误,执行gcloud auth login重新登录对应Google账号后重试即可。
第三步:确认报告文件存在性
Play Console的统计报告有固定的保留周期,2021年的历史报告如果超出保留期限就会被自动删除。你可以先执行gsutil ls gs://pubsite_prod_xxxxxx/stats/installs/查看当前可下载的所有安装报告文件,确认文件名前缀、年份符合你的预期后,再执行拉取命令。
内容的提问来源于stack exchange,提问作者Pyari
相关产品推荐
相关产品推荐

