Save-AzrWebApp func загружает неправильный SourcePath - PullRequest
0 голосов
/ 26 ноября 2018

Я использую Save-AzrWebApp для загрузки файлов из веб-приложения Azure.

Как это сделать, описано здесь: https://blog.ipswitch.com/how-to-copy-files-from-an-azure-app-service-with-powershell

Моя проблема: Неважно, какой SourcePath я установил, он всегда загружает мне файлы из папки wwwroot.

Пример кода, который я использую:

$syncParams = @{
    SourcePath = '\wwwroot\history'
    TargetPath = $TargetPath
    ComputerName = "https://$Name.scm.azurewebsites.net:443/msdeploy.axd?site=$Name"
    Credential = $Credential

}
Sync-Website @syncParams
Get-Item -Path $TargetPath

На самом деле не имеет значения, что я положил в SourcePath (даже не существующий путь), он будет загружать содержимое wwwroot.Как правильно его использовать?

1 Ответ

0 голосов
/ 27 ноября 2018

Если вы хотите загрузить файл из веб-приложения, вы можете использовать это веб-приложение kudu api через powershell.

Попробуйте команду ниже, она отлично работает на моей стороне.

$creds = Invoke-AzureRmResourceAction -ResourceGroupName joywebapp -ResourceType Microsoft.Web/sites/config -ResourceName joywebapp2/publishingcredentials -Action list -ApiVersion 2015-08-01 -Force
$username = $creds.Properties.PublishingUserName
$password = $creds.Properties.PublishingPassword
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))

$apiUrl = "https://joywebapp2.scm.azurewebsites.net/api/vfs/site/wwwroot/Content/Site.css"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo);"If-Match"="*"} -Method GET -ContentType "multipart/form-data" -OutFile "C:\Users\joyw\Desktop\test.css"

Результат теста:

enter image description here

enter image description here

Обновление :

Если вы хотите загрузить папку, вы можете использовать Zip api в упомянутом документе, это позволяет загружать папку в виде zip-файла.

Пример команды:

$creds = Invoke-AzureRmResourceAction -ResourceGroupName joywebapp -ResourceType Microsoft.Web/sites/config -ResourceName joywebapp2/publishingcredentials -Action list -ApiVersion 2015-08-01 -Force
$username = $creds.Properties.PublishingUserName
$password = $creds.Properties.PublishingPassword
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))

$apiUrl = "https://joywebapp2.scm.azurewebsites.net/api/zip/site/wwwroot/Scripts/"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo);"If-Match"="*"} -Method GET -ContentType "multipart/form-data" -OutFile "C:\Users\joyw\Desktop\Scripts.zip"

Примечание : ZIP-файл не включает саму верхнюю папку.Убедитесь, что вы включили косую черту, например, я загружаю папку Scripts, нам нужно использовать Scripts/ в apiUrl.

...