在docker container中为gsutil认证gcloud

1.写在前面的话

  • 本篇博客适用的对象是在docker container中运行gsutil cp xxxxx时报401错误的
  • 为什么会报401?因为gsutil在登录到xxxx网站时,没有被gcloud授权,当然没有办法继续下载了
  • 那怎么授权呢?参考官方讲解
  • 在看了很多遍官方讲解后,我终于豁然开朗了

2.在docker container下运行出现401错误

  • 会出现401错误的情况:
    • 本地不是在gcp上创建的虚拟机
  • 首先,要想使用gsutil从gcp中拉文件,就必须在gcp上创建项目,否者永远不能实现这个功能
  • 建立项目后,就会有项目的id,秘钥等非常重要的信息
  • 想要在任何一台机器上进行gsutil就必须在本地创建一个.boto文件,并编写该文件,当然了你可以运行gsutil config -a来自动生成这个文件(参考文献),需要上一步的项目的id和秘钥,有了.boto文件后,还要配置BOTO_PATH来定位.boto文件,具体操作可以参见官方讲解
  • 但是,以上的操作只使用于非docker环境下哦,如果是doker container中,我们不能每次run一个image还要去手动输入项目的id和秘钥这些信息吧,所以需要一个json文件来存储gcp中的项目授权信息,下载这个json文件的方法参见官方讲解
    • 有了这个json文件后,直接执行gcloud auth activate-service-account --key-file=xxxxxx.json 就可以了使用gsutil
    • 提示一下,如果下载的文件比较大可以使用多进程命令gsutil cp -m

5.写在最后的话

且行且珍惜
有语义分割爱好者,可以联系[email protected]或者qq1355365561

猜你喜欢

转载自blog.csdn.net/qq_37285386/article/details/107701134