无法通过 api 从 ADO 下载 zip 文件

Posted

技术标签:

【中文标题】无法通过 api 从 ADO 下载 zip 文件【英文标题】:unable to download zip file from ADO via api 【发布时间】:2021-03-06 17:24:44 【问题描述】:

我正在尝试通过 API 下载一些附加到 ADO 中的工作项的文件

为此,我正在使用这个 powershell 脚本

$organization= "<org name>"
$projectName = "<project name>"
$token = "<Azure token>"

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("0:1" -f "",$token)))

$url = "https://dev.azure.com/$organization/$projectName/_apis/wit/attachments/attachment ID?fileName=file name&download=true&api-version=5.0"

$result = Invoke-RestMethod -Uri $url -Method Get -ContentType "application/zip" -Headers @Authorization=("Basic 0" -f $base64AuthInfo) | Out-File 'file name'

使用此脚本我可以下载任何文本文件,但是当我下载任何 zip 文件时,它无法打开

它给出了错误提示

压缩(压缩)文件夹“FilePath\FileName 无效。”

【问题讨论】:

嗨@anant。这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒this。 【参考方案1】:

压缩(压缩)文件夹“FilePath\FileName 无效。”

我已经测试了你的样本并重现了同样的问题。

要解决此问题,您需要将| Out-File 'file name' 更改为-OutFile 'file name'

这是一个例子:

$result = Invoke-RestMethod -Uri $url -Method Get -ContentType "application/zip" -Headers @Authorization=("Basic 0" -f $base64AuthInfo) -OutFile 'file name'

然后就可以成功打开zip文件了。

【讨论】:

感谢您的解决方案,您的解决方案运行良好

以上是关于无法通过 api 从 ADO 下载 zip 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在前端使用 Angular 从 PHP Laravel API 下载 zip 文件?

无法从 dist 下载 symfony/finder:解压 ZIP 文件时出错。损坏的文件?

React - 从字节字符串中的 API 响应正文下载 Zip 文件?

linux下分卷压缩,从Linux下载大于4G文件到本地,并且在本地合并

通过 FTP 下载时无法识别 Zip 文件

R下载的zip文件已损坏