2014-04-20 7 views
0

Я пытаюсь использовать AzCopy для загрузки блобов из контейнера в учетной записи хранилища Azure. Каждый раз, когда я выдаю команду, он немедленно возвращается и говорит «Закончено 0 из 0 файлов (ов)».Невозможно загрузить BLOB из Azure Storage с помощью AzCopy

Контейнер является закрытым. Я использую Windows Azure Storage Command Line, которая включена в загрузку инструментов Windows Azure Storage, включая AzCopy.

Я без проблем могу загрузить файлы с помощью AzCopy. Вот примеры моих команд.

Загрузить (Copy) Для Azure Storage - Это Работает

AzCopy c:\temp https://<myaccount>.blob.core.windows.net/<mycontainer> /destkey:<mykey> /V:C:\temp\logs\azcopy.log 

Скачать (Copy) От Azure Storage - это не работает

AzCopy https://<myaccount>.blob.core.windows.net/<mycontainer> c:\temp\meb /sourceKey:<mykey> /V:C:\temp\logs\azcopy.log 

Я знаю, что мой ключ правильно потому что загрузка работает без проблем. Это похоже на то, что в контейнере нет файлов, но если я вхожу на портал Azure, я могу видеть файлы в -mycontainer, которые находятся в -myaccount-.

Я не могу найти информацию в Интернете о тех, кто имеет аналогичную проблему. Что мне не хватает?

AzCopy Папка файлов и версий

  • AzCopy.exe (1.0.8698.584)
  • Microsoft.Data.Edm.dll (5.6.0.61587)
  • Microsoft.Data.OData.dll (5.6.0.61587)
  • Microsoft.Data.Services.Client.dll (5.6.0.61587)
  • Microsoft.WindowsAzure.Storage.DataMovement.dll (1.0.8698.584)
  • Microsoft.WindowsAzure.Storage.dll (3.0.3.0)
+0

Какую версию SDK вы используете? Вы можете указать номер версии всех файлов (exes и dll) в папке AzCopy? –

+0

@GauravMantri Я обновил вопрос с помощью файлов и версий папок AzCopy. Любая помощь, которую вы можете предоставить, будет оценена по достоинству! – dblood

+0

Спасибо. У меня одни и те же DLL, а также видя ту же проблему. Я склонен полагать, что проблема несколько связана с проблемой здесь: http://stackoverflow.com/questions/21650463/azure-cross-account-copy-using-azcopy-and-shared-access-key/21655292# 21655292, но я не уверен на 100%. Позвольте мне сделать еще несколько исследований. Это может быть немного, пока я не вернусь к этому. –

ответ

5

Попробуйте загрузив блоб, указав /S параметр. Таким образом, ваша команда загрузки будет:

AzCopy https://<myaccount>.blob.core.windows.net/<mycontainer> c:\temp\meb /sourceKey:<mykey> /S /V:C:\temp\logs\azcopy.log 

Из документации:

/S      Recursive copy. 
          In recursive copy mode the source and destination 
          are treated as a directory (file-system) or 
          as a prefix string (blob storage). 

Это должно сделать трюк.

+0

Ничего себе, ты прав, что сделал трюк. Когда я читал справку по аскопии, я думал о рекурсивности, как во вложенных папках. Что происходит в файловой системе, но в контейнере, папки являются просто виртуальными и частью имени blob, поэтому я предполагаю, что это имеет смысл. Спасибо за помощь! – dblood

+0

Даже я так и думал. Сделал его работой по проб и ошибок. –

0

Его очень просто с AzCopy. Скачать последнюю версию с https://azure.microsoft.com/en-us/documentation/articles/storage-use-azcopy/ и azcopy типа: Copy капля в учетной записи хранилища:

AzCopy /Source:https://myaccount.blob.core.windows.net/mycontainer1 /Dest:https://myaccount.blob.core.windows.net/mycontainer2 /SourceKey:key /DestKey:key /Pattern:abc.txt 

Копирование блоб через счета хранения:

AzCopy /Source:https://sourceaccount.blob.core.windows.net/mycontainer1 /Dest:https://destaccount.blob.core.windows.net/mycontainer2 /SourceKey:key1 /DestKey:key2 /Pattern:abc.txt 

Копирование блоб из области вторичного

Если ваша учетная запись хранилища имеет доступ к гео-избыточному хранилищу с доступом для чтения, вы можете скопировать данные из вторичной области.

Копирование блоб на основной счет от второстепенного:

AzCopy /Source:https://myaccount1-secondary.blob.core.windows.net/mynewcontainer1 /Dest:https://myaccount2.blob.core.windows.net/mynewcontainer2 /SourceKey:key1 /DestKey:key2 /Pattern:abc.txt 

Чтобы возобновить любое intrrupted операцию указать параметр/Z или рекурсивной операции указать/S