将 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,则必须重做此操作。
我遇到了同样的问题并按如下方式解决了。
- 打开云shell,然后使用gsutil 命令复制对象。
gsutil -m cp -r gs://[some bucket]/[object] .
- 在 shell 上,使用 zip 命令压缩这些对象。
zip [some file name].zip -r [some name of your specific folder]
- 在 shell 上,使用 gsutil 命令将 zip 文件复制到 GCS。
gsutil cp [some file name].zip gs://[some bucket] .
- 在 Windows 命令提示符下,使用 gsutil 命令在 GCS 中复制 zip 文件。
gsutil cp gs://[some bucket]/[some file name].zip .
希望此信息对某人有所帮助。
这也是gsutil
表达找不到文件的方式。提及 URL 只是在本地文件的上下文中造成混淆。
我正在尝试下载 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,则必须重做此操作。
我遇到了同样的问题并按如下方式解决了。
- 打开云shell,然后使用gsutil 命令复制对象。
gsutil -m cp -r gs://[some bucket]/[object] .
- 在 shell 上,使用 zip 命令压缩这些对象。
zip [some file name].zip -r [some name of your specific folder]
- 在 shell 上,使用 gsutil 命令将 zip 文件复制到 GCS。
gsutil cp [some file name].zip gs://[some bucket] .
- 在 Windows 命令提示符下,使用 gsutil 命令在 GCS 中复制 zip 文件。
gsutil cp gs://[some bucket]/[some file name].zip .
希望此信息对某人有所帮助。
这也是gsutil
表达找不到文件的方式。提及 URL 只是在本地文件的上下文中造成混淆。