azure - 通过 Powershell 从 KUDU(Azure Web 应用程序)下载文件

标签 azure download azure-devops kudu azure-webapps

我想通过 Powershell 从 Kudu 下载文件,使用 Invoke-WebRequest 我得到的只是一个没有日志数据的 filename.log,从我在日志文件中看到的,它是 azure 的登录屏幕“登录到您的帐户” ”。

网址

Invoke-WebRequest "https://AppName.scm.azurewebsites.net/api/vfs/LogFiles/FileName.Log "-OutFile $FilePath1 Get-ChildItem -文件 $FilePath1 -递归 |设置-AzureStorageBlobContent -Container FilesContainer -Context $StorageContext

最佳答案

需要在 Invoke-WebRequest 的 header 中提供 Web 应用程序发布配置文件的用户名和密码以进行身份​​验证。

您可以在发布配置文件中获取用户名和密码。您可以从 Azure Web App 下载发布配置文件。并在publishProfile部分引用userName和userPWD值。

# User name from WebDeploy Publish Profile. Use backtick while assigning variable content  
$userName = "{userName}"  
# Password from WebDeploy Publish Profile  
$password = "{Password}"  
# Encode username and password to base64 string  
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $userName, $password)))

 # pass the authentication to Header
Invoke-WebRequest -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET -OutFile $filePath -ContentType "multipart/form-data"

您还可以通过脚本获取用户名和密码,请参见下面的示例:

$ResGroupName = ""
$WebAppName = ""
$LogFolder = ""

# Get publishing profile for web application
$WebApp = Get-AzWebApp -Name $WebAppName -ResourceGroupName $ResGroupName
[xml]$publishingProfile = Get-AzWebAppPublishingProfile -WebApp $WebApp

# Create Base64 authorization header
$username = $publishingProfile.publishData.publishProfile[0].userName
$password = $publishingProfile.publishData.publishProfile[0].userPWD
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))

# pass the authentication to Header
Invoke-WebRequest -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET -OutFile $filePath -ContentType "multipart/form-data"

关于azure - 通过 Powershell 从 KUDU(Azure Web 应用程序)下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61902207/

相关文章:

powershell - 如何使用 Powershell 连接到 Twitter API 并遵循参数

git - 我在哪里可以找到 visual studio 在线页面上的用户登录名和密码?

azure-devops - 使用 Azure DevOps Services REST API 添加超链接到描述

c# - Azure 上的 Hadoop 示例生成空白文件

api - Azure 应用服务、本地域和 VPN 隧道

azure - Cosmos DB 一致性

java - 从远程 git 存储库获取单个文件

ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch")

PHP 下载脚本损坏了文件

azure - 无法授予对 VisualStudio.com GIT 存储库的访问权限