如何将文件从 colab 或云存储复制到谷歌驱动器?
Posted
技术标签:
【中文标题】如何将文件从 colab 或云存储复制到谷歌驱动器?【英文标题】:How to copy files from colab or cloud storage to google drive? 【发布时间】:2019-10-27 22:35:01 【问题描述】:我阅读了一些关于这个问题的代码,但我无法理解这些代码。有人可以帮我解释一下代码吗?
# 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。代码中的“驱动器/内容/驱动器/我的驱动器/”代表什么?我应该如何解析这段代码。如果它适用于目录,我应该如何修改这段代码以使其适用于单个文件?
【问题讨论】:
【参考方案1】:!cp "colab-path" -r "drive-path"
【讨论】:
为什么是 -r ?我试过没有 -r 效果很好 递归复制目录而不是单个文件。【参考方案2】:gsutil cp -r
从一个或多个源文件/目录递归复制到某个目标目录。例如。要将一个或多个目录复制到另一个目录中,您可以:
gsutil cp -r src_folder1/ src_folder2/ dst_folder/
那么,让我们来解释一下上面示例中发生的一切:
您首先通过drive.mount()
在本地目录/content/drive
下使用一些文件系统适配器魔术来挂载Google Drive 的内容。
然后运行gsutil
命令。 gsutil
将参数“drive”视为应复制到目录“/content/drive/My Drive/”的另一个源文件(或目录)。如果文件/目录“驱动器”不存在,gsutil 会跳过它并抱怨它不存在(但 gsutil 仍会将其他源参数复制到目标,因为 -m
标志会导致它继续(在可能的情况下)遇到问题)。
因此,如果您想将名为“my-object-name”的对象从您的存储桶复制到您的 Google Drive 的根目录,该命令将如下所示:
!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
命令,请查看网络文档:
【讨论】:
非常感谢您提供如此详细的解释!以上是关于如何将文件从 colab 或云存储复制到谷歌驱动器?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在不先将对象作为文件保存到谷歌驱动器的情况下从谷歌 colab 下载对象作为文件?
如何将 spatie laravel 存储的备份上传到谷歌驱动器?