google-cloud-storage 的 gsutil 配置

google-cloud-storage 的 gsutil 配置

我试图在 Google Chrome 中运行遥测测试用例,这需要从 google-cloud-storage 下载一些测试文件。当我运行测试用例时,我收到以下错误。错误说我必须在访问之前配置 gsutil,但即使按照给定的步骤配置 gsutil,我最终还是会遇到相同的错误。配置 gsutil 后会创建一个“.boto”文件。所以我不知道为什么我会收到同样的错误。

PermissionError: Attempted to access a file from Cloud Storage but you don't have permission. To configure your credentials:
  1. Run "tools/telemetry/third_party/gsutil/gsutil config" and follow its instructions.
  2. If you have a @google.com account, use that account.
  3. For the project-id, just enter 0.

Locals:
  args        : ['cp', 'gs://chrome-partner-telemetry/da1c09dd48dcd2eb76449d97c4fa38460d3a1e8d', '/home/sriram/android/chromeopensource/androidbuild/src/tools/perf/page_sets/tough_video_cases/crowd1080.mp4']
  gsutil      : <subprocess.Popen object at 0x30807d0>
  gsutil_env  : None
  gsutil_path : 'tools/telemetry/third_party/gsutil/gsutil'
  stderr      : 'AccessDeniedException: 403 Forbidden\n'
  stdout      : ''

答案1

gsutil 将使用 ~/.boto 文件。默认情况下,gsutil 将在 /etc/boto.cfg 和 ~/.boto 中查找配置文件。

如果这些文件不存在,它将改用 legacy_credentials。

您可以通过修改 BOTO_PATH 和 BOTO_CONFIG 环境参数来改变所有这些行为。

这是文档关于如何使用这些环境变量。

BOTO_PATH:gsutil 将按顺序加载在路径中找到的每个配置文件。如果您想在用户之间共享 boto 配置,您可能需要使用此环境变量。例如:

BOTO_PATH=/etc/group/.boto.cfg:/home/user/.boto 

BOTO_CONFIG:使用此变量设置优先顺序。示例如下:

BOTO_CONFIG=~/testa/.boto:~/testb/.boto . 

这会将首选项放在 testa 的 boto 文件上。如果该文件不存在,则 gsutil 将加载 testb boto。

答案2

您的第三方工具没有询问特定的项目ID:

For the project-id, just enter 0

我不知道这个工具,但是使用 Google Cloud 命令“gsutil 配置/home/<user>/.boto文件已创建(您可以编辑此文件)。系统将要求您提供项目 ID 以及“gcloud auth login”以注册“gs_oauth2_refresh_token”。

即使您使用第三方工具,它也必须或多或少地以相同的方式构建。启动 gsutil config 时查看输出,它应该说明您的 boto 文件的创建位置。

我创建了一个来与 Google Cloud 进行检查“gsutil 配置”:

Boto config file "/home/eric/.boto" created. If you need to use a
proxy to access the Internet please see the instructions in that file.

我的/.boto 文件:

# This file contains credentials and other configuration information needed
# by the boto library, used by gsutil. You can edit this file (e.g., to add
# credentials) but be careful not to mis-edit any of the variable names (like
# "gs_access_key_id") or remove important markers (like the "[Credentials]" and
# "[Boto]" section delimiters).
#
# This file was created by gsutil version 4.10 at 2015-03-16 19:48:14.

....
gs_oauth2_refresh_token=xxxxxxxxxxxxxxxxxxxxxxxx
....

您可以随意删除或更新此文件,您始终可以使用“gsutil 配置“ 需要的时候。

相关内容