Загрузка содержимого ZIP через API REST в Powershell - PullRequest
0 голосов
/ 23 октября 2018

Это пример URI API REST для получения журналов из выпуска AzureDevOps.https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases/{releaseId}/logs?api-version=4.1-preview.2

Глаголом является GET, а типом контента является "application / zip"

Как получить zip-файл с помощью вызова REST API через powershell, используя Invoke-RestMethod?

Если я передам Out-File этой команде и сохраню ее как zip, она не преобразует двоичный вывод ответа API в zip.

Как мне это сделать?

1 Ответ

0 голосов
/ 24 октября 2018

Вам нужно назвать вывод как 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
...