gsutil导致"CommandException:您有多种类型的已配置凭据"

sco*_*gl3 4 oauth google-cloud-storage gsutil google-oauth google-cloud-platform

我正在尝试运行gsutil命令列出Google云端存储中存储桶中的内容.我几乎可以肯定这个命令没什么问题.

我得到的错误是:

CommandException: You have multiple types of configured credentials (['Oauth 2.0 User Account', 'OAuth 2.0 Service Account']), which is not supported. For more help, see "gsutil help creds".
Run Code Online (Sandbox Code Playgroud)

我已经阅读了"gsutil help creds"中的详细信息,但这只包含四种凭据类型的高级定义,这没有用.

阅读错误消息,似乎我基本上需要删除其中一个"已配置的凭据",在这种情况下,我想删除"Oauth 2.0用户帐户"凭据.并使用"OAuth 2.0服务帐户".

因此,我查看了包含我自动生成的配置凭据的".boto"文件,但它看起来不像是可以编辑的Oauth 2.0用户帐户.

我也尝试在Google的开发者控制台中挖掘删除Oauth 2.0用户帐户,但我无法做到.

基本上,我的问题(假设这是正确的问题),如何删除Google云平台中的"Oauth 2.0用户帐户"凭据?

Mik*_*rtz 6

请运行:

gsutil -D

调试输出将包括config_file_list,它应该显示多个凭据的定义位置.

您是从Google Compute Engine运行的吗?此问题发生的常见方式是,当GCE已经创建了服务帐户凭据时,用户在〜/ .boto中配置gsutil(使用gsutil config)的凭据(在/etc/boto.cfg中)

  • 谢谢!这帮助我解决了这个问题。该输出有一个列表:“config_file_list”,它正在读取的配置之一似乎是我过去设置的旧配置。包含旧配置的目录是:“/.config/gcloud/legacy_credentials/[MY_EMAIL_ADDRESS]/.boto”我完全删除了目录“legacy_credentials”,这解决了问题。 (2认同)