我正在尝试获取一个已通过 gcloud auth 登录激活的服务帐户,以供 gsutil 选取。大查询命令行工具 bq 表现良好。
我遵循的操作顺序:
第一的:
gcloud auth activate-service-account --key-file snip.json snip@developer.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)
这会导致输出: 已激活 [snip@developer.gserviceaccount.com] 的服务帐户凭据
第二:我通过以下方式确认凭证处于活动状态:
gcloud auth list
Run Code Online (Sandbox Code Playgroud)
结果是:**凭据帐户:- snip@developer.gserviceaccount.com(活动)...
第三:我看看 bq 工具是否能识别它:
bq ls
Run Code Online (Sandbox Code Playgroud)
它正确列出了我的项目中的数据集。
第四:我在我的存储桶上尝试 gsutil。我已将我的服务帐户用户作为所有者添加到此存储桶中,以确保它具有权限。
gsutil ls gs://snip
Run Code Online (Sandbox Code Playgroud)
这会导致:长时间等待,最终: 您尝试在没有配置凭据的情况下访问受保护的数据。请访问https://cloud.google.com/console#/project 并注册一个帐户,然后运行“gcloud auth login”命令来配置 gsutil 以使用这些凭据。
然后我使用调试命令:
gsutil -D
Run Code Online (Sandbox Code Playgroud)
输出:
gsutil version: 4.11
checksum: snip (OK)
boto version: 2.30.0
python version: 2.7.5 (default, Jun 17 2014, 18:11:42) [GCC 4.8.2 20140120 (Red Hat 4.8.2-16)]
OS: Linux 3.10.0-123.20.1.el7.x86_64
multiprocessing available: True
using cloud …Run Code Online (Sandbox Code Playgroud)