gsutil 使用已安装的应用程序 json 文件登录

问题描述 投票:0回答:2

我想使用 gsutil 列出谷歌云存储桶中的文件。 我安装了 google cloud sdk,我的问题是我有一个用于已安装应用程序的凭据文件 client_secrets.json,它看起来像这样

{
  "installed": {
    "client_id": "837647042410-75ifg...usercontent.com",
    "client_secret":"asdlkfjaskd",
    "redirect_uris": ["http://localhost", "urn:ietf:wg:oauth:2.0:oob"],
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token"
  }
}

我知道您可以使用以下方式进行身份验证

gcloud auth activate-service-account --key-file=credentials.json
但这仅适用于服务帐户,而我的是已安装的应用程序凭据,但它不起作用。

我没有使用 gcloud auth,而是尝试通过运行切换为使用 boto 进行身份验证

gcloud config set pass_credentials_to_gsutil false
并更新 .boto 配置文件以从我的文件手动更新 client_id 和 client_secret,但是当我运行
gsutil config
运行新凭据时,它不断要求我通过浏览器登录,以便在手动登录后提供代码:

Please navigate your browser to the following URL:
https://accounts.google.com/o/oauth2/auth?client_id=20487....
Enter the authorization code:

但这是一个不需要用户登录的应用程序,因为我已经有一个凭据文件。

我错过了什么?我如何使用 gsutil 使用安装应用程序 client_secrets.json 进行身份验证。

google-cloud-platform gcloud gsutil
2个回答
1
投票

文档提供了使用已安装的应用程序凭据的完整工作流程,您需要配置应用程序并将凭据保存在 client_secrets.json 文件中,在整个配置和身份验证过程之后,您将能够使用 gcloud/ gsutil命令。您可以参考此公共 Google Documentation 来管理您的密钥来创建和验证您的服务帐户密钥。

您还可以参考 stackoverflow Question,其中 googler 解释了如何使用 json 文件的 .boto 配置将 key.json 文件传递给 gsutil。


0
投票

您没有凭证。您的文件是 OAuth2 客户端 ID(桌面类型)。这些工具使用它来启动 OAuth 2 身份验证,是的,您需要登录,因为此文件中没有任何凭据。

clientID 和 client Secret 用于通过您的登录名和密码验证您的登录请求,它不是您的凭证,仅用于 OAuth2 协议!

© www.soinside.com 2019 - 2024. All rights reserved.