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
- 有了这个json文件后,直接执行
5.写在最后的话
且行且珍惜
有语义分割爱好者,可以联系haiyangpengai@gmail.com或者qq1355365561