将 Google 云存储桶数据复制到我的本地计算机时出现错误 "No URLs matched"?

Error "No URLs matched" When copying Google cloud bucket data to my local computer?

我正在尝试下载 Google Cloud Bucket 中的 folder,我阅读了 google 文档 gsutil/commands/cp 并在行下方执行。

gsutil cp -r appengine.googleapis.com gs://my-bucket

但我得到 error

CommandException: No URLs matched: appengine.googleapis.com

编辑

通过运行下面的命令

gsutil cp -r gs://logsnotimelimit .

我遇到错误

IOError: [Errno 22] invalid mode ('ab') or filename: u'.\logsnotimelimit\appengine.googleapis.com\nginx.request18:00:00_14:59:59_S0.json_.gstmp'

您的命令中的 appengine.googleapis.com 参数是什么?这是您要复制到云存储桶的文件系统上的本地目录吗?

您提供的 gsutil cp -r appengine.googleapis.com gs://my-bucket 命令会将名为 appengine.googleapis.com 的本地目录递归复制到名为 my-bucket 的云存储桶中。如果这不是您正在做的 - 您需要以不同的方式构建命令。

即从名为 my-bucket 的云存储桶中将名为 folder 的目录下载到当前位置尝试 运行 gsutil cp -r gs://my-bucket/folder .

-- 更新:因为看起来您使用的是 Windows 机器(“\”目录分隔符而不是“/”在错误消息中)并且由于文件名包含“:”字符 - cp 命令将在创建带有您看到的错误消息的文件时失败。

只是想帮助 运行 在 Windows 遇到这个问题的人。作为管理员:

  • 打开C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\gsutil\gslib\utils
  • 删除copy_helper.pyc
  • 更改 copy_helper.py 的权限以允许写入
  • 打开copy_helper.py
  • 转到函数_GetDownloadFile
  • 在第 2312 行(撰写本文时),更改以下行
download_file_name = _GetDownloadTempFileName(dst_url)

to(比如objective就是去掉冒号):

download_file_name = _GetDownloadTempFileName(dst_url).replace(':', '-')
  • 转到函数_ValidateAndCompleteDownload
  • 在第 3184 行(撰写本文时),更改以下行
final_file_name = dst_url.object_name

to(比如objective就是去掉冒号):

final_file_name = dst_url.object_name.replace(':', '-')
  • 保存文件,然后重新运行 gsutil 命令
  • 仅供参考,我使用命令 gsutil -m cp -r gs://my-bucket/* . 下载我所有的日志,默认情况下包含 : 这对于 Windows 文件来说不是个好兆头!

希望这对某人有所帮助,我知道这是一个有点棘手的解决方案,但由于您永远不需要(应该有)Windows 文件名中的冒号,所以可以忘记。请记住,如果您更新 Google SDK,则必须重做此操作。

我遇到了同样的问题并按如下方式解决了。

  1. 打开云shell,然后使用gsutil 命令复制对象。

gsutil -m cp -r gs://[some bucket]/[object] .

  1. 在 shell 上,使用 zip 命令压缩这些对象。

zip [some file name].zip -r [some name of your specific folder]

  1. 在 shell 上,使用 gsutil 命令将 zip 文件复制到 GCS。

gsutil cp [some file name].zip gs://[some bucket] .

  1. 在 Windows 命令提示符下,使用 gsutil 命令在 GCS 中复制 zip 文件。

gsutil cp gs://[some bucket]/[some file name].zip .

希望此信息对某人有所帮助。

这也是gsutil表达找不到文件的方式。提及 URL 只是在本地文件的上下文中造成混淆。