Google cloud storage 自动化gsutil命令

Google cloud storage 自动化gsutil命令,google-cloud-storage,gcloud,Google Cloud Storage,Gcloud,我正在尝试自动化一些gsutils命令,但是很难看到身份验证文件保存在哪里以及如何重用(如果是这样的话) 我已经在bash中完成了gcloud初始化过程 curl https://sdk.cloud.google.com | bash gcloud init 我跑步的时候一切都很好 'gsutil ls' 现在我正在尝试自动化这个过程,因此这将在一个新的服务器上工作,并在其上添加一个crontab(而不是每次都创建一个新的配置) 我看到有人提到设置env变量GOOGLE_APPLICAT

我正在尝试自动化一些gsutils命令,但是很难看到身份验证文件保存在哪里以及如何重用(如果是这样的话)

我已经在bash中完成了gcloud初始化过程

curl https://sdk.cloud.google.com | bash
gcloud init
我跑步的时候一切都很好

  'gsutil ls'
现在我正在尝试自动化这个过程,因此这将在一个新的服务器上工作,并在其上添加一个crontab(而不是每次都创建一个新的配置)

我看到有人提到设置env变量GOOGLE_APPLICATION_CREDENTIALS,所以我将我的凭据从web登录复制到一个文件中并进行了尝试,例如尝试作为另一个用户进行测试

export GOOGLE_APPLICATION_CREDENTIALS=/home/user/.gsutil/mycreds
然后,gsutil会重新启动,但失败了

所以我想我把所有的证件都搞错了。我假设在某个地方有一个最初由gcloud创建的文件,我可以使用它,但我在任何地方都看不到它

我已经看了答案,但根据最后的评论,现在似乎不是最新的

编辑:我遵循了Zacharys的步骤,gcloud auth activate service account--key file=myfilelocation

然而,使用“gsutil ls”,我现在得到了

You are attempting to perform an operation that requires a project id, with none configured. Please re-run gsutil config and make sure to follow the instructions for finding and entering your default project id.

所以我的下一个问题是,它在哪里寻找项目id?如果我运行gsutil config,它似乎会创建一组新的auth,然后创建另一个错误,因此我已删除了该错误。

您应该能够做到这一点,而不必深入到gsutil的身份验证实现中

如果您使用的是单机版
gsutil
(如果您是通过安装的),则链接问题中的说明仍然有效(正如Travis指出的)

如果您想继续使用通过云SDK提供的
gsutil
,您应该使用。服务帐户是在无头机器或非交互式上下文中进行身份验证的首选方法

您的流将如下所示:

  • 通过创建服务帐户
  • 在远程计算机上,安装云SDK和
    gsutil
    。如果您不是交互式安装,最好跳过
    curl…|bash
    方法。相反,下载、解压缩并运行
    install.sh
    脚本。此脚本具有选项(通过
    --help
    可见);如果为所有这些选项指定选项,则不会提示您
  • 将服务帐户复制到远程计算机。运行
    gcloud auth activate service account--key file=/path/to/service account.json
  • 运行
    gsutil
    。您应该经过适当的身份验证

  • 您必须将defult project和user设置为gsuitl 在MAC上的Windows/terminal命令行上运行该命令

    云初始化 选择1
    它将显示不同的用户选择用户,然后选择项目

    gcloud将其配置存储在~/.config/gcloud中,因此,如果您有手动设置的正常安装,您至少应该能够将该配置复制到新服务器。不过,可能还有一种更优雅的方式。谢谢,我可以在那里看到相关文件。您也可以将服务帐户与独立的gsutil一起使用,这比复制此场景的用户凭据更有意义。谢谢,我已经有所进展,我似乎可以进行身份验证,但现在在配置中找不到项目id,或者它的附件在哪里设置,或者如何具体说明?我在问题的末尾添加了一个编辑。好的,我想我有点进展了,gcloud配置集项目'project id'似乎是okgcloud配置集项目'your project id'应该是您所需要的全部。这可能为我节省了一个小时通过google api文档进行解析的时间-谢谢!