如何在 GCP 中下载整个存储桶?

Jus*_*tas 4 google-cloud-platform google-cloud-shell

我在 GCP 中下载整个文件夹时遇到问题。我应该如何下载整个存储桶?我在 GCP Shell 环境中运行此代码:

gsutil -m cp -R gs://my-uniquename-bucket ./C:\Users\Myname\Desktop\Bucket
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:“CommandException:目标 URL 必须为 cp 命令的多源形式命名一个目录、存储桶或存储桶子目录。CommandException:无法传输 7 个文件/对象。”

有人可以指出代码行中的错误吗?

共享编辑标志

小智 25

要下载整个存储桶,您必须安装 google cloud SDK

然后运行这个命令

gsutil -m cp -R gs://project-bucket-name path/to/local

path/to/local你的机器的本地存储路径在哪里


JKl*_*nne 5

错误位于destination URL错误消息指定的范围内。

我在 GCP Shell 环境中运行此代码

请记住,您是从Cloud Shell运行命令,而不是在本地终端或 Windows 命令行中运行。因此,它会抛出该错误,因为它找不到您指定的路径。如果检查云壳牌的文件系统/结构,更类似于一个Unix环境中,你也可以指定像这样的目标:~/bucketfiles/。即使是简单的gsutil -m cp -R gs://bucket-name.appspot.com ./也能工作,因为 Cloud Shell 可以识别./当前目录的目录。

此问题的解决方法是在 Windows 命令行上执行命令。您必须事先安装 Google Cloud SDK

或者,这也可以在 Cloud Shell 中完成,尽管需要一个额外的步骤:

  1. 通过运行下载存储桶对象,gsutil -m cp -R gs://bucket-name ~/这会将其下载到 Cloud Shell 的主目录中
  2. ~/通过用户界面或运行将(home) 目录中下载的文件从 Cloud Shell 传输到本地计算机gcloud alpha cloud-shell scp

  • 是的,问题出在“目标 URL”内。我仍然不知道语法应该是什么,因为我不是程序员...我尝试在 Cloud Shell 中使用代码,它似乎可以很好地将文件从一个存储桶复制到另一个存储桶,但是目的地应该是什么将对象复制到本地计算机时的 URL 是什么样的? (2认同)

Joh*_*ley 4

您的目标路径无效:

./C:\Users\Myname\Desktop\Bucket
Run Code Online (Sandbox Code Playgroud)

改成:

/Users/Myname/Desktop/Bucket
Run Code Online (Sandbox Code Playgroud)

C:是保留的设备名称。您不能在相对路径中指定保留设备名称。./C:无效。