我正在尝试将gsutil与自定义.boto文件一起使用,但我无法让gsutil查看我的自定义.boto文件。
BOTO_CONFIG=/app/.custombotofile gsutil ls
BOTO_PATH=./app/.custombotofile gsutil ls
这两个命令都使用默认的.boto文件。
gsutil -v
gsutil version: 4.28
UPDATE1:
这些命令可以在我的本地计算机上运行,但不能在docker中运行 容器
UPDATE2:
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容器中工作。
答案 0 :(得分:1)
我建议的调试步骤包括:
1)确保您可以打开并阅读该文件,例如从你的shell运行:
if [[ -r /app/.custombotofile ]]; then echo "readable"; fi
2)运行gsutil version -l
并检查是否未加载boto文件,或者是否正在加载另一个boto文件并覆盖第一个文件中的选项(当使用gcloud打包的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文件,您可以通过运行此gcloud命令来停止此行为:
$ gcloud config set pass_credentials_to_gsutil false