带有自定义 .boto 文件的 gsutil

gsutil with a custom .boto file

我正在尝试将 gsutil 与自定义 .boto 文件一起使用,但我无法让 gsutil 查看我的自定义 .boto 文件。

BOTO_CONFIG=/app/.custombotofile gsutil ls
BOTO_PATH=./app/.custombotofile gsutil ls

这两个命令都使用默认的 .boto 文件。

gsutil -v
gsutil version: 4.28

Update1:

These commands work on my local machine, but not inside a docker container

更新 2:

mhouglum 的回答提供了一个关键的现场。使用

gsutil version -l

给予

[...]
config path(s): /Users/jhill/.boto /default/path/from/gcloud/.boto
[...]

运行

gcloud config set pass_credentials_to_gsutil false && gsutil version -l

给予

[...]
config path(s): /Users/jhill/.boto
[...]

即删除我不想要的路径。 gsutil 现在在 docker 容器中工作。

我在这里推荐的调试步骤包括:

1) 确保您可以打开和读取文件,例如运行 这个来自你的 shell:

if [[ -r /app/.custombotofile ]]; then echo "readable"; fi

2) 运行 gsutil version -l 并检查是否未加载 boto 文件,或者随后是否正在加载另一个 boto 文件并覆盖第一个文件的选项(这发生在使用gcloud-packaged 安装 gsutil 如果你 运行 gcloud auth login, 如下图所示):

$ BOTO_CONFIG="/home/bob/.anotherboto" gsutil version -l
[...]
using cloud sdk: True
pass cloud sdk credentials to gsutil: True
config path(s): /home/bob/.anotherboto, /home/bob/.config/gcloud/legacy_credentials/bobs.email@gmail.com/.boto
[...]

如果 gcloud 确实正在加载另一个 .boto 文件,您可以通过 运行ning 这个 gcloud 命令停止此行为:

$ gcloud config set pass_credentials_to_gsutil false