【Linux】使用gsutil工具批量下载谷歌云存储桶中的文件

目录

0.问题来源:

1.使用流程:

1.1工具下载:

1.2添加环境变量

 1.3下载文件


0.问题来源:

        复现github代码时有时作者会把一些比较大的文件(如数据集)放在谷歌云盘供大家下载,谷歌云盘一次只支持下载单个文件,如果作者数据集没有将数据集压缩上传下载很麻烦,这时可以用gsutil工具下载整个文件夹或多个文件夹。

1.使用流程:

下载安装gsutil工具——将安装路径添加到环境变量——使用命令将文件下载到指定文件夹

1.1工具下载:

【方式1】可以使用命令行直接下载安装,如果是这种方式需要记住安装路径,便于第二步添加正确的环境变量。我一开始直接用命令行下载安装,使用时报过以下错误:

Unknown option: m
No command was given.

Choose one of -b, -d, -e, or -r to do something.
Try `/usr/bin/gsutil --help' for more information.

此处感谢这篇文章提到了这个bug

官网给出的解释是:

警告:某些 Linux 发行版中预安装了另一个名为 gsutil 的工具(由 GrandStream BudgeTone 提供)。如果您运行此命令(而不是 Cloud Storage gsutil),它可能会输出类似于 “Choose one of -b, -d, -e, or -r to do something” 的错误消息。如果发生这种情况,您可以在 PATH 环境变量中将 Cloud Storage 版 gsutil 移到前面,或者,您也可以在运行 Cloud Storage gsutil 时指定完整路径(例如 /home/users/joan/gsutil/gsutil ls)。

解决方式就是修改环境变量或者指定工具的绝对路径,因为前面安装的时候没注意路径,所以改为使用下面的【方式2】重新安装

【方式2】使用安装包安装

感谢这篇博客提供的教程

cd /安装目录

#下载压缩包
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-367.0.0-linux-x86_64.tar.gz

#解压
tar zxvf google-cloud-sdk-367.0.0-linux-x86_64.tar.gz

cd /安装目录/google-cloud-sdk
install.sh 或者 bash install.sh

1.2添加环境变量

# 进入环境变量文件
vim ~/.bashrc

# 按i键进入编辑模式
export PATH=$PATH:/安装目录/google-cloud-sdk/bin

# 按Esc键退出编辑模式
# 输入:wq保存并退出

# 使修改生效
source ~/.bashrc

 1.3下载文件

【Linux】使用gsutil工具批量下载谷歌云存储桶中的文件_第1张图片

如上图,选中一个或多个文件夹点击下载,会出现如下gsutil命令

【Linux】使用gsutil工具批量下载谷歌云存储桶中的文件_第2张图片

复制该命令即可将文件夹下载至当前所在目录。

gsutil -m cp -r "gs://sfr-ulip-code-release-research/shapenet-55" .

注意:最后面那个.不要漏掉,它表示将文件下载到当前目录,这个参数可以换成其他你想要保存文件的路径。如果没加这个.会报错参数数量不对。

也可以选中多个文件夹下载,例如

gsutil -m cp -r "gs://sfr-ulip-code-release-research/modelnet40_normal_resampled" "gs://sfr-ulip-code-release-research/shapenet-55" .

你可能感兴趣的:(linux)