У меня есть сценарий, который работает для получения файла из большого двоичного объекта на основе имени и ключа учетной записи хранения (что, как я понимаю, не является хорошим решением), во временное хранилище.Я пытаюсь сделать то же самое (получить тот же файл), но вместо этого использую токен SAS.Внутри учетной записи хранения есть контейнер с именем «paraparams », а затем внутри этого контейнера находится файл с именем« nsgscript.ps1 ».
Я сгенерировал токен SAS для контейнера, но не смог найти выходсоздать токен для всей учетной записи хранения;он должен был быть на уровне контейнера ниже (отдельный файл).
Таким образом, старый скрипт (который РАБОТАЕТ) был:
$StorageAccountName = "storagename"
$StorageAccountKey = "abcdefghijkstorageaccountkeyhere"
$ContainerName = "automationparams"
$Blob1Name = "nsgscript.ps1"
$TargetFolderPath = ($env:TEMP)
$context = New-AzureStorageContext `
-StorageAccountName $StorageAccountName `
-StorageAccountKey $StorageAccountKey
$result = Get-AzureStorageBlobContent `
-Blob $Blob1Name `
-Container $ContainerName `
-Context $context `
-Destination $TargetFolderPath
Это загрузит файл nsgscript.ps1 в AutomationParmsКонтейнер в учетной записи хранения storageName.
Это сценарий, который я пытаюсь получить с помощью SAS-токена storagecontext:
$StorageAccountName = "storagename"
$Blob1Name = "nsgscript.ps1"
$TargetFolderPath = ($env:TEMP)
$context = New-AzureStorageContext -StorageAccountName $StorageAccountName -SASToken "https://storagelocation.blob.core.windows.net/automationparams?st=2018-10-25T19%3A57%3A00Z&se=2020-10-26T19%3A57%3A00Z&sp=rl&sv=2018-03-28&sr=c&sig=abcdefghijklmnorestofkey"
$result = Get-AzureStorageBlobContent `
-Blob $Blob1Name `
-Container $ContainerName `
-Context $context `
-Destination $TargetFolderPath
При запуске я получаю следующее сообщение об ошибке:Get-AzureStorageBlobContent: удаленный сервер возвратил ошибку: (403) Запрещено.Код состояния HTTP: 403 - Сообщение об ошибке HTTP: серверу не удалось аутентифицировать запрос.Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись.В строке: 1 символ: 11
Есть идеи?