如何使用提供的 gsutil 命令从 Google Cloud Storage 下载多个文件

问题描述 投票:0回答:1

我正在尝试从 Google Cloud Storage 下载一批 10 个文件。我有一个包含数千个文件的存储桶。我可以使用用户界面进行搜索和过滤,直到我选择了 10 个我需要下载的文件。我知道我可以为每一个手动点击“下载”然后保存到我的电脑,但是当我选择它们全部下载时,我会得到以下代码片段来复制和粘贴:

gsutil -m cp \
  "gs://class-reports/ShamaliChauhan-2022-06-24 20H50M33S480MS.pdf" \
  "gs://class-reports/ShamaliChauhan-2022-06-29 17H19M51S157MS.pdf" \
  "gs://class-reports/ShamaliChauhan-2022-06-29 17H21M37S096MS.pdf" \
  "gs://class-reports/ShamaliChauhan-2022-06-29 17H27M28S043MS.pdf" \
  "gs://class-reports/ShamaliChauhan-2022-06-29 17H44M49S566MS.pdf" \
  "gs://class-reports/ShamaliChauhan-2022-06-29 17H46M12S639MS.pdf" \
  "gs://class-reports/ShamaliChauhan-2022-08-19 12H01M59S639MS.pdf" \
  "gs://class-reports/ShamaliChauhan-2022-08-22 10H02M07S922MS.pdf" \
  "gs://class-reports/ShamaliChauhan-2022-09-07 11H28M15S384MS.pdf" \
  "gs://class-reports/VP1 basic-ShamaliChauhan-2022-06-24 18H07M50S806MS.pdf" \
  .

容易吗?我只是将此代码复制并粘贴到我的 Google Cloud SDK Shell(它已连接并运行 gsutil,对吗?),我得到了这个:

C:\Users\shaed\Desktop\Shamali>gsutil -m cp \
CommandException: Wrong number of arguments for "cp" command.

C:\Users\shaed\Desktop\Shamali>  "gs://class-reports/ShamaliChauhan-2022-06-24 20H50M33S480MS.pdf" \
The filename, directory name, or volume label syntax is incorrect.

但是第二个错误出现了 10 次,我尝试下载的每个文件出现一次。

我在这里发现了这个问题: 如何使用 gsutil 下载 Google Cloud Storage 中的多个文件

提到了同样的问题,并暗示它可能与不转义换行符(以及可能的额外空格)的斜线有关,因此它分别运行建议代码的每一行。我想知道我的设置是否有问题,或者我需要做什么才能使用预制代码将多个指定文件(不是所有文件都在一个存储桶中)下载到我计算机上的文件夹中。看起来这应该是一个明智的选择,但实施起来却让人头疼。

有什么想法吗?

google-cloud-storage gsutil google-cloud-sdk
1个回答
0
投票

我知道这是一个老问题,但由于我遇到了同样的问题,所以我发布了我的答案以防其他人也遇到它。

如果您尝试在 Windows 中执行此操作,反斜杠不会被识别为有效的多行字符。

如果使用 CMD 尝试用 ^ 替换 \(正如@DazWilkin 已经指出的那样)。

即CMD:

gsutil -m cp ^
  "gs://class-reports/ShamaliChauhan-2022-06-24 20H50M33S480MS.pdf" ^
  "gs://class-reports/ShamaliChauhan-2022-06-29 17H19M51S157MS.pdf" ^
  "gs://class-reports/ShamaliChauhan-2022-06-29 17H21M37S096MS.pdf" ^
  "gs://class-reports/ShamaliChauhan-2022-06-29 17H27M28S043MS.pdf" ^
  "gs://class-reports/ShamaliChauhan-2022-06-29 17H44M49S566MS.pdf" ^
  "gs://class-reports/ShamaliChauhan-2022-06-29 17H46M12S639MS.pdf" ^
  "gs://class-reports/ShamaliChauhan-2022-08-19 12H01M59S639MS.pdf" ^
  "gs://class-reports/ShamaliChauhan-2022-08-22 10H02M07S922MS.pdf" ^
  "gs://class-reports/ShamaliChauhan-2022-09-07 11H28M15S384MS.pdf" ^
  "gs://class-reports/VP1 basic-ShamaliChauhan-2022-06-24 18H07M50S806MS.pdf" ^
  .

或者(如果您只想使用 Windows 中的命令),您可以安装 WSL 并在 Windows 中启用 linux 子内核。然后你可以从终端登录到 linux 子内核(通过在 windows 终端中键入 wsl),安装 linux 所需的相关实用程序,并从 WSL 子系统内部运行命令

© www.soinside.com 2019 - 2024. All rights reserved.