【问题标题】:gsutil CommandException: No URLs matched: *.txtgsutil CommandException:没有匹配的 URL:*.txt
【发布时间】:2015-05-29 18:56:32
【问题描述】:

我正在尝试了解如何使用 gsutil 将本地文件复制到云存储,以便我可以编写脚本来移动文件。我按照以下步骤操作:

C:\Program Files (x86)\Google\Cloud SDK>gsutil ls
gs://sa-upload-test/
C:\Program Files (x86)\Google\Cloud SDK>cd\spare
C:\Spare>gsutil cp *.txt gs://sa-upload-test
CommandException: No URLs matched: *.txt

我更改了文件夹属性并为每个人设置了权限,重新运行它,仍然得到相同的结果。谁能告诉我我错过了什么?

【问题讨论】:

  • C:\Spare 中真的有 .txt 文件吗?
  • 是的。我专门为此测试创建了 3 个。
  • 尝试在不使用通配符的情况下复制文件,如下所示:gsutil cp A.txt B.txt C.txt gs://sa-upload-test。我不确定,因为我无法访问 Windows 框,但这可能是由于 gsutil 没有处理工具内部的模式通配。在 UNIX 中,这已由 shell 执行。我不知道 Windows 是否也是这种情况。
  • 感谢 Antxon。使用文件名不起作用。但这让我重新审视了我的文件和位置。如果你愿意,你现在可以打我一巴掌,因为我实际上指向的是我的另一个测试文件夹。当您查看正确的文件夹时,它会起作用。
  • 还要感谢特拉维斯。如果我按照您的建议仔细检查了我的文件夹,我会发现问题。

标签: gsutil


【解决方案1】:

gsutil 似乎无法识别您本地系统上的这些文件。尝试刷新您的终端。

在我的例子中,我正在上传 django 静态文件,所以我重新收集了我的静态文件并且它起作用了。

【讨论】:

    【解决方案2】:

    问题是 powershell 不像 bash 那样扩展 glob。

    您可能期望这会起作用,因为您以前使用过 bash。 在 bash 中,*.txt 将由 bash 扩展为以空格分隔的文件的完整列表,gsuil 会很高兴。尝试在 bash 中运行 'echo *.txt',然后在 powershell 中运行,看看有什么不同。

    某些 powershell 命令(如 ls )看起来像是 bash 扩展,但事实是 powershell 并没有像 bash 那样扩展您的 glob。相反,powershell 'ls' 命令或类似命令会进行扩展。 gsutil 不执行此扩展。

    在 powershell 中,您可以使用类似的东西来模拟 bash 的工作方式:

    gsutil cp ((Get-Item *.txt) -join(' ')) gs://sa-upload-test
    

    【讨论】:

      猜你喜欢
      • 2018-06-01
      • 2021-11-05
      • 2014-11-01
      • 2021-07-16
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      相关资源
      最近更新 更多