我试图了解如何使用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
我更改了文件夹属性并为每个人设置了权限,重新运行它并仍然得到相同的结果。谁能告诉我我错过了什么?
答案 0 :(得分:1)
似乎gsutil无法识别本地系统上的这些文件。尝试刷新终端。
在我的情况下,我正在上传django静态文件,所以我重新收集了我的静态文件并且它有效。
答案 1 :(得分:0)
问题在于powershell不会像bash那样扩展glob。
您可能希望它能起作用,因为您以前使用过bash。 在bash中,*。txt将由bash扩展为以空格分隔的文件的完整列表,而gsuil会很高兴。尝试先在bash中运行'echo * .txt',然后在powershell中运行,以查看两者之间的区别。
像ls这样的某些powershell命令给人以bash扩展的外观,但事实是,powershell不会像bash那样扩展glob。而是使用powershell的“ ls”命令或类似命令进行扩展。 gsutil不会进行此扩展。
在powershell中,您可以使用类似以下的方法来模拟bash的工作方式:
gsutil cp ((Get-Item *.txt) -join(' ')) gs://sa-upload-test