是否可以自动将基于gsutil的文件上传到谷歌云存储,以便登录时不需要用户干预?
我的用例是拥有一个jenkins作业,该作业轮询SCM位置以更改一组文件。如果它检测到任何更改,则会将所有文件上传到特定的Google云端存储分区。
答案 0 :(得分:9)
配置凭据后,gsutil无需进一步干预。我怀疑您以用户X的身份运行gsutil configure
,但Jenkins以用户Y的身份运行。因此,~jenkins/.boto
不存在。如果将.boto文件放在正确的位置,则应该全部设置。
另一个替代方法是使用多个.boto文件,然后告诉gsutil使用哪个BOTO_CONFIG
环境变量:
gsutil config # complete oauth flow
cp ~/.boto /path/to/existing.boto
# detect that we need to upload
BOTO_CONFIG=/path/to/existing.boto gsutil -m cp files gs://bucket
我经常使用此模式将gsutil与多个帐户一起使用:
gsutil config # complete oauth flow for user A
mv ~/.boto user-a.boto
gsutil config # complete oauth flow for user B
mv ~/.boto user-b.boto
BOTO_CONFIG=user-a.boto gsutil cp a-file gs://a-bucket
BOTO_CONFIG=user-b.boto gsutil cp b-file gs//b-bucket