gsutil CommandException: URL-адреса не соответствуют: *.txt

Я пытаюсь понять, как копировать локальные файлы в облачное хранилище с помощью 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

Я изменил свойства папки и установил разрешения для всех, повторно запустил ее и все равно получил тот же результат. Может ли кто-нибудь сказать мне, что мне не хватает?


person theosgood    schedule 25.03.2015    source источник
comment
У вас действительно есть файлы .txt в C:\Spare?   -  person Travis Hobrla    schedule 26.03.2015
comment
Да. Я создал 3 специально для этого теста.   -  person theosgood    schedule 26.03.2015
comment
Попробуйте скопировать файлы без использования подстановочного знака, например: gsutil cp A.txt B.txt C.txt gs://sa-upload-test. Я не уверен, потому что я не могу получить доступ к окну Windows, но это может быть связано с тем, что gsutil не обрабатывает подстановку шаблонов внутри инструмента. В UNIX это уже выполняется оболочкой. Я не знаю, относится ли это и к Windows.   -  person Antxon    schedule 27.03.2015
comment
Спасибо Антсон. Использование имени файла не сработало. Но это заставило меня пересмотреть свои файлы и местоположения. Можете дать мне пощечину, если хотите, потому что на самом деле я указывал на другую тестовую папку. Когда вы смотрите на правильную папку, это работает.   -  person theosgood    schedule 27.03.2015
comment
Также спасибо Трэвису. Если бы я дважды проверил свою папку, когда вы предложили, я бы увидел проблему.   -  person theosgood    schedule 27.03.2015
comment
@theosgood Из ваших комментариев видно, что вы решили проблему. Рассмотрите возможность публикации самостоятельного ответа, чтобы сообщество могло получить пользу.   -  person Faizan    schedule 08.03.2017


Ответы (2)


Похоже, gsutil не распознает эти файлы в вашей локальной системе. Попробуйте обновить терминал.

В моем случае я загружал статические файлы django, поэтому я вспомнил свои статические файлы, и это сработало.

person Chris Dare    schedule 12.02.2018

Проблема в том, что powershell не расширяет глобусы, как это делает bash.

Вы, вероятно, ожидали, что это сработает, потому что раньше использовали bash. В bash *.txt будет расширен bash до полного списка файлов, разделенных пробелами, и gsuil будет доволен. Попробуйте запустить «echo *.txt» в bash, а затем в powershell, чтобы увидеть разницу.

Некоторые команды powershell, такие как ls, создают видимость расширения bash, но правда в том, что powershell НЕ расширяет ваши глобусы так же, как это делает bash. Вместо этого расширение выполняется командой powershell 'ls' или аналогичными командами. gsutil не делает этого расширения.

В powershell вы можете использовать что-то вроде этого, чтобы эмулировать работу bash:

gsutil cp ((Get-Item *.txt) -join(' ')) gs://sa-upload-test
person Jack Davidson    schedule 10.12.2018