如何将文件从colab或云存储复制到Google驱动器?

时间:2019-06-13 10:40:41

标签: google-cloud-platform gsutil

我阅读了有关此问题的一些代码,但我无法理解这些代码。有人可以帮我解释一下代码吗?

# mount your drive
from google.colab import drive
drive.mount('/content/drive')
!gsutil -q -m cp -r gs://my-bucket-name drive /content/drive/My\ Drive/

我想将文件从colab或Google云存储传输到gdrive。代码中代表什么“驱动器/ content / drive /我的驱动器/”?我应该如何解析这段代码。如果它适用于目录,我应该如何修改这段代码以使其适用于单个文件?

2 个答案:

答案 0 :(得分:2)

!cp "colab-path" -r "drive-path"

答案 1 :(得分:1)

gsutil cp -r从一个或多个源文件/目录到某个目标目录进行递归复制。例如。要将一个或多个目录复制到另一个目录,您可以这样做:

gsutil cp -r src_folder1/ src_folder2/ dst_folder/

所以,让我们解释一下上面的示例中发生的一切:

  • 您首先通过drive.mount()/content/drive本地目录下使用一些文件系统适配器魔术来挂载Google云端硬盘的内容。
  • 然后您运行gsutil命令。 gsutil将参数“ drive”视为另一个源文件(或目录),应将其复制到目录“ / content / drive / My Drive /”。如果文件/目录“驱动器”不存在,则gsutil会跳过它并抱怨它不存在(但由于-m标志会导致gsutil仍将其他源参数复制到目标文件中在遇到问题时继续(在可能的情况下)。

因此,如果您要将一个名为“ my-object-name”的对象从存储桶复制到Google云端硬盘的根目录,则该命令将类似于以下内容:

!gsutil -q -m cp gs://my-bucket-name/my-object-name /content/drive/My\ Drive/

或者,复制对象并为其命名不同的名称:

!gsutil -q -m cp gs://my-bucket-name/my-object-name /content/drive/My\ Drive/some-new-name

要详细了解gsutil,其顶级标志及其cp命令,请查看网络文档: