【问题标题】:Gsutil multiple gs_service_key_file configuration in .boto.boto 中的 Gsutil 多个 gs_service_key_file 配置
【发布时间】:2022-01-13 01:46:43
【问题描述】:

我正在使用 gsutil 并且有多个存储,每个存储都有自己的 gs_service_key_file 配置文件。我希望能够同时与多个存储进行交互,但是在 .boto 文件中我只能指定一个凭据文件:

gs_service_key_file = /home/gsutil_creds/gsutil_first_storage.json

当我运行这个命令时,我不需要指定存储:

gsutil rsync data gs://mybucket/data

是否可以在 .boto 文件中指定所有不同的凭据文件,并在运行命令时指定您正在使用的配置文件?由于目前,我只能与一个存储交互,直到我将 .boto 文件编辑为不同的配置。

或者也许可以在运行时在命令中指定配置文件?虽然它应该允许与多个存储进行交互。

【问题讨论】:

  • 你好,请问multiple credentials in a single boto file对你有没有帮助?
  • @ZeenathSN 嗨,据我了解,配置文件是直接在 .boto 文件中创建的。但在示例中,它显示为 [profile prod] \n gs_access_key_id=.... \n gs_secret_access_key=...。它是否也适用于 gs_service_key_file(JSON 配置文件的路径)?另外,我想在命令行中使用 gsutil。话虽如此,我可以只有一个 .boto 文件并通过使用 --profile 参数来使用不同的配置文件吗?

标签: google-cloud-storage boto gsutil


【解决方案1】:

您可以将它们分成不同的文件,并通过为每个命令使用BOTO_CONFIG 环境变量来指定要使用的文件:

BOTO_CONFIG=/path/to/config gsutil rsync ....

有关详细信息,请参阅 gsutil 文档中的此部分:

https://cloud.google.com/storage/docs/boto-gsutil#location

【讨论】:

  • 感谢您的回答!所以我应该为我的每个存储复制 .boto 文件,只有 gs_service_key_file 变量应该不同?例如,如果我将数据发送到 storage1(假设它需要很长时间),然后在另一个终端窗口中我开始将数据发送到 storage2(您的命令将 .boto 配置文件和数据更改为 storage1 仍在发送) - 将它会影响第一个命令吗?我只是想知道是否每次设置 BOTO_CONFIG 变量不会导致任何问题。
  • 您还可以使用 BOTO_PATH 变量——它允许您提供多个按指定顺序加载的 boto 文件。这样,您就可以拥有一个“基本”boto 配置文件,然后是一系列要定义附加值的 boto 文件。启动 gsutil 时,这可能类似于 BOTO_PATH="/path/to/base.boto:/path/to/svc_key_1_cfg.boto" gsutil <...>。至于同时运行两个不同的 gsutil 命令,您需要为每个命令指定不同的状态目录;见stackoverflow.com/questions/56815155/…
  • 感谢您的回复!关于一次运行两个不同的 gsutil 命令,从您的回答来看,是否意味着设置 BOTO_CONFIG 路径是不够的,例如,如果我想通过 2 个终端窗口使用 gsutil cp 将数据发送到两个不同的存储桶?为什么需要状态目录?提前致谢。
  • 状态目录包含用于管理缓存凭据的“锁定”文件。如果多个进程竞争一次使用相同的凭据锁定文件,我已经看到 gsutil 挂起。
猜你喜欢
  • 2018-12-23
  • 2011-12-20
  • 2018-06-26
  • 2016-11-18
  • 2016-02-04
  • 2022-01-08
  • 1970-01-01
  • 2014-11-01
  • 2014-07-08
相关资源
最近更新 更多