Azcopy: копирование файлов в Azure Fileshare с помощью Azcopy 10

Я пытаюсь скопировать файлы в Azure Fileshare и обратно с помощью AZCopy v10. У меня это успешно работает с v8.1, но я продолжаю получать ошибки, используя v10.

Я использую это из командной строки, чтобы скопировать файл с локального диска на общий доступ к файлам;

c:\Temp\azcopy.exe copy "c:\temp\sample.txt" "https://myfiles.file.core.windows.net/dbfiles/sample.txt?SASKeyText"

Это генерирует сообщение об ошибке;

не удалось выполнить команду копирования из-за ошибки: невозможно перенести отдельные файлы / папки в корень службы. Добавьте контейнер или каталог в целевой URL

Я попытался добавить каталог в общий доступ к файлам и добавить его в командную строку, но получаю ту же ошибку.

Если я переверну копию с общего файлового ресурса на локальный диск, я получаю сообщение об ошибке;

не удалось выполнить команду копирования из-за ошибки: копии учетных записей являются по своей сути рекурсивной операцией, поэтому требуется --recursive

Я следил за руководством по адресу https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-files, но не смог увидеть, что не так.

Заранее благодарю за любую помощь.


person jhTuppeny    schedule 24.06.2020    source источник
comment
Я могу запустить эту команду без проблем.   -  person Gaurav Mantri    schedule 24.06.2020
comment
Я запускаю это с локального диска на машине Windows10 с помощью командной строки DOS. Вы что-нибудь делаете по-другому?   -  person jhTuppeny    schedule 24.06.2020
comment
Неа. То же самое. Я использую версию 10.4.3.   -  person Gaurav Mantri    schedule 24.06.2020
comment
Это команда, которую я использую azcopy.exe copy "D:\temp\test.txt" "https://account.file.core.windows.net/dbfiles/sample.txt?st=2020-06-24T15%3A55%3A51Z&se=2020-06-25T15%3A55%3A51Z&sp=rcwdl&sv=2018-03-28&sr=s&sig=<sig>"   -  person Gaurav Mantri    schedule 24.06.2020
comment
Насколько я понимаю, это точно такой же формат, как и я. Спасибо, что попробовали.   -  person jhTuppeny    schedule 24.06.2020
comment
Не могли бы вы рассказать, как выглядит ваш токен SAS? Пожалуйста, запутайте sig часть перед тем, как поделиться.   -  person Gaurav Mantri    schedule 25.06.2020
comment
Я перепроверил токен SAS и обнаружил ошибку. Жалко, что в сообщении об ошибке не было намека на то, что ошибка была в токене. Спасибо, что нашли время взглянуть.   -  person jhTuppeny    schedule 25.06.2020


Ответы (2)


Ошибка здесь связана с токеном SAS, а не с формой команды.

Я полагаю, это следует отметить среди примеров бесполезных сообщений об ошибках.

Спасибо всем, кто нашел время посмотреть.

person jhTuppeny    schedule 25.06.2020
comment
Для других людей, оказавшихся здесь, я видел эту ошибку при копировании файлов из одного файлового ресурса Azure в другой в той же учетной записи хранения, и мне пришлось добавить SAS как к исходным, так и к целевым URL-адресам. - person Erik; 16.10.2020

У меня была такая же проблема при попытке скопировать с моего локального компьютера в хранилище BLOB-объектов Azure.

Это была команда, которую я выполнял:

azcopy copy --from-to=LocalBlob "C:\AzureStorageTest\my-app\*" "https://myapptest.blob.core.windows.net/%24web" --recursive

Но я получил ошибку ниже:

не удалось выполнить команду копирования из-за ошибки: невозможно перенести отдельные файлы / папки в корень службы. Добавьте контейнер или каталог в целевой URL

Вот как я решил это:

Мне не хватало аргумента ?[SAS] в конце места хранения BLOB-объектов. Итак, вместо этого:

azcopy copy --from-to=LocalBlob "C:\AzureStorageTest\my-app\*" "https://myapptest.blob.core.windows.net/%24web" --recursive

У меня было такое:

azcopy copy --from-to=LocalBlob "C:\AzureStorageTest\my-app\*" "https://myapptest.blob.core.windows.net/%24web?[SAS]" --recursive

Примечание.

  1. Формат - azcopy copy "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/directory]?[SAS]" --recursive. Вам нужно только изменить "/path/to/dir", [account] и [container]/[path/to/directory]. Все остальное остается таким, как есть.
  2. Укажите маршрутизацию от источника к месту назначения с помощью аргумента --from-to=LocalBlob (если вы копируете из локального хранилища в хранилище больших двоичных объектов), чтобы явно указать на операцию копирования.
  3. Мое фактическое место хранения BLOB-объектов - https://myapptest.blob.core.windows.net/$24web, но я использовал https://myapptest.blob.core.windows.net/%24web, поскольку $ при использовании вызовет некоторую ошибку, поэтому использовался %24.

Это все.

Надеюсь, это поможет

person Promise Preston    schedule 21.04.2021