将文件和文件夹从Google存储桶下载到本地文件夹


Answers:


150

看一下gsutil工具。可以将cp命令与-R(递归)和-m(多线程)选项一起使用。

gsutil -m cp -R gs://<bucket_name> .

如果您想使用公共水桶尝试一下

gsutil -m cp -R gs://uspto-pair .

多线程授予的加速可能非常重要:

$ time gsutil cp -R gs://uspto-pair/docs/2010-08-28 .
...

real    0m12.534s

$ time gsutil -m cp -R gs://uspto-pair/docs/2010-08-28 .
...

real    0m3.345s

我建议不要盲目下载uspto对桶-那里有一堆文件……
Cebjyre 2012年

1
这里非常重要的一点是在本地计算机上安装gsutil 。例如,您可以通过安装Google Cloud SDK来实现。我忘记了这一步,并像白痴一样继续在项目的本地VM上使用gsutil。
马提亚斯(Matthias)

此服务是免费的还是收费的?像A类操作一样?
Sudhanshu Gaur

2
如果要将存储区中的大量大文件下载到传统的HDD(而非SSD)中,请不要将该-m标志用于多线程。这将大大缩短磁盘的响应时间,因为它将在不同文件之间不断移动针头​​。我-m最初尝试使用,只是使磁盘成为瓶颈。省略该-m标志将使HDD写入磁盘上的相同物理位置。
JR

这太可怕了!谢谢
kninjaboi

67

对于那些希望避免安装本地工具(如)的人gsutil,有一种方法可以完全在浏览器中从Google Cloud Storage下载文件文件夹

  1. 导航至:https : //console.cloud.google.com/storage/browser/BUCKET_NAME
  2. 找到您要下载的文件夹/文件。
  3. 在页面的右上角,按代码图标打开Cloud Shell。
  4. 在Cloud Shell虚拟机中创建一个临时文件夹: mkdir Data
  5. 将Cloud Storage数据复制到临时Data文件夹:gsutil -m cp -R gs://BUCKET_NAME/FOLDER_OR_FILE_PATH ./Data
  6. 将数据复制到一个zip文件中: zip -r Data.zip Data
  7. 通过运行dl Data.zip或以下方式下载zip文件:打开工具栏中的“ ...”下拉列表,按“下载文件”,键入Data.zip,然后按“下载”。

作为第6步和第7步的替代方法(或者如果您想要tar文件而不是zip文件):

。。6b。按下工具栏中的计算机图标(或铅笔),以在新选项卡中打开Cloud Shell Environment资源管理器。
。。7b。右键单击Data目录浏览器中左侧的文件夹,然后按“下载”。tar文件将下载到本地计算机,然后可以使用7-Zip等将其解压缩。


7
这对我来说就像一个魅力,没有任何付费包!
nipunasudha

临时文件夹有大小限制吗?在我这一边,它在54%之后停止复制。我正在尝试移动8.4GB的图片以下载它们。
toughQuestions

1
@toughQuestions我不知道;我从未尝试下载太多内容。假设确实如此(根据您的反馈),建议您将gsutil程序安装到本地计算机上,然后从本地计算机上运行它:stackoverflow.com/q/39137053
Venryx

我会尝试一下,谢谢:-)
toughQuestions

1
限制为5 GB,因此仅对较小的东西有用。虽然很酷的解决方案。
user32149

16

万一gsutil引发异常(CommandException: Wrong number of arguments for "cp" command.),请尝试以下操作:

gsutil -m cp -R gs://BUCKETNAME ./LOCALFOLDERNAME

此服务是免费的还是收费的?像A类操作一样?
Sudhanshu Gaur 18/12/23

2

就我而言,有效的方法是导航到浏览器gui中的存储桶,然后单击文件和“保存文件”。
这显然对多个文件来说很糟糕,但是您当然可以将它们压缩为一个文件(使用Google Cloud Console)。

看到这个线程。

另外,如果没有存储桶,则可以创建一个存储桶,然后使用gcloud控制台将其上传到存储桶,例如gsutil cp file.tgz gs://<bucket>


2
我刚刚意识到为什么塞巴斯蒂安的答案对我不起作用。由于某种原因,我完全不知道需要在本地计算机上安装gsutil的事实。保留在gcloud控制台浏览器中使用它,然后下载到我的项目VM中。
马提亚斯(Matthias)

浏览器内的gcloud shell支持将其vm文件下载到本地计算机,因此您实际上不需要gsutil在本地计算机上安装:stackoverflow.com/a/59567734/2441655
Venryx

@Dilvane以某种方式-m选项对我不起作用...但是-r如下... bharathkumarraju @ R77-NB193 raju%gsutil cp -r gs:// testbucket。复制gs://testbucket/asset-manifest.json ...
BharathKumarRaju Dasararaju

2

这是对我有用的东西:

步骤1:在您的本地计算机上安装gsutil:https //cloud.google.com/storage/docs/gsutil_install ?hl = fr

第2步:运行命令,将文件从存储桶复制到本地计算机:gsutil cp [-r if repository] gs://[BUCKET_NAME]/[OBJECT_NAME] [OBJECT_DESTINATION_IN_LOCAL]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.