rest - 通过 Powershell 中的 REST API 调用下载 ZIP 内容

标签 rest powershell azure-devops azure-devops-rest-api

这是一个示例 REST API uri,用于从 AzureDevOps 版本中检索日志。 https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}/logs?api-version=4.1-preview.2

Verb 是 GET,内容类型是“application/zip”

如何使用 Invoke-RestMethod 通过 powershell 通过 REST API 调用检索 zip 文件?

如果我将 Out-File 传递给此命令并将其保存为 zip,它不会将 API 响应的二进制输出转换为 zip。

我该怎么做?

最佳答案

您需要将输出命名为 zip。

下面的 Powershell 脚本适合我:

Param(
   [string]$collectionUrl = "https://vsrm.dev.azure.com/{organization}",
   [string]$project = "0522TFVCScrum",
   [string]$releaseid = "35",
   [string]$filename = "D:\temp\ReleaseLogs_$releaseid.zip",
   [string]$user = "username",
   [string]$token = "password/PAT"
)

# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

$uri = "$collectionUrl/$project/_apis/Release/releases/$releaseid/logs"

Invoke-RestMethod -Uri $uri -Method Get -ContentType "application/zip" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -OutFile $filename

关于rest - 通过 Powershell 中的 REST API 调用下载 ZIP 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52953653/

相关文章:

c# - 从 WMI 检索格式化的性能数据

azure - 有关永久删除/销毁工作项 Azure DevOps 的信息

azure - 如何将 azure 应用程序洞察链接到 aks

rest - Protractor/Jasmine 在测试失败时发送 REST 调用

arrays - 获取数组中的最小值,然后获取索引

powershell - 无法读取文件内容

visual-studio-2017 - Visual Studio 2017 创建拉取请求按钮随机消失

node.js - Node/Express - 用于 PUT 请求的 bodyParser 为空

spring - 404 未找到 : Angular 2 can't talk to Spring Rest API

python - 如何在 Django REST 框架中使用事务?