Отправка в хранилище файлов Azure, а не в BLOB-объекты

Хотя я не являюсь мастером сценариев PowerShell, мне не удается загрузить некоторые заархивированные файлы в свое хранилище файлов Azure.

Я пробовал следующий сценарий, который я пробовал через руководства для микрософтов ("https://docs.microsoft.com/sv-se/powershell/module/azure.storage/set-azurestoragefilecontent?view=azurermps-1.2.9 ")

$StorageAccountName = "MyAccountName"
$StorageAccountKey = "TheKeyThat I have"
$ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName `
         -StorageAccountKey $StorageAccountKey
         Set-AzureStorageFileContent archive archive\Test\ C:\Users\User\Desktop\MoveFrom\*.* -Context $context'

Проблема в том, что я получаю эту ошибку

Set-AzureStorageFileContent : The specified source file 'archive\Test\' was not found.
At line:5 char:10
+          Set-AzureStorageFileContent archive archive\Test\ C:\Users\User\De ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Set-AzureStorageFileContent], FileNotFoundException
    + FullyQualifiedErrorId : FileNotFoundException,Microsoft.WindowsAzure.Commands.Storage.File.Cmdlet.SetAzureStorageFileContent

Общий ресурс называется архивом, а внутри архива у нас есть разные папки, одна папка с именем Test. Так что я не понимаю, почему он жалуется на отсутствие исходного файла?


person Wookoai    schedule 05.04.2017    source источник


Ответы (1)


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

Кроме того, существует проблема с использованием этого командлета. См. Документацию here. Основываясь на документации, попробуйте следующее:

$source = "<path to source file>"
Set-AzureStorageFileContent -ShareName "archive" -Source $source -Path "Test" -Context $ctx

Если вы хотите загрузить папку в Azure File Share, могу ли я предложить вам взглянуть на _ 5_. Чтобы загрузить все файлы из папки, вы должны использовать AzCopy следующим образом:

AzCopy /Source:C:\myfolder /Dest:https://myaccount.file.core.windows.net/myfileshare/ /DestKey:key /S
person Gaurav Mantri    schedule 05.04.2017
comment
Это сработало без проблем, но затем я назначил для загрузки только один ziped-файл. Разве не сработает использование $ source = C: \ Users \ User \ Desktop \ MoveFrom *. *? тоже закачать все файлы, которые есть в исходной папке? - person Wookoai; 05.04.2017
comment
Нет, не будет, поскольку этот командлет загружает только один файл. Вы можете использовать AzCopy, как я уже упоминал, если хотите загрузить папку. - person Gaurav Mantri; 05.04.2017
comment
Я попробовал AzCopy, установил его со страницы, на которую была ссылка. Перезапустил POwershell и получил эту командную строку (AzCopy / C: \ Users \ User \ Desktop \ MoveFrom / Dest: StorageName.file.core.windows.net/archive/Test / DestKey: MyKey / S), но появляется следующая ошибка. Термин 'AzCopy' не распознается как имя командлета, функции, sc - Я не могу использовать Powershell с AzCopy? - person Wookoai; 05.04.2017
comment
Попробуйте запустить AzCopy из каталога, в котором он установлен. Вам нужно будет открыть командную строку. - person Gaurav Mantri; 05.04.2017
comment
Удалось заставить его работать с azcopy. Но есть ли способ автоматизировать это с помощью расписания? - person Wookoai; 05.04.2017
comment
Я бы предложил задать по этому поводу другой вопрос. - person Gaurav Mantri; 05.04.2017