我试图在 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 配置“ 需要的时候。