首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从GitHub应用编程接口下载压缩文件的PowerShell

从GitHub应用编程接口下载压缩文件的PowerShell
EN

Stack Overflow用户
提问于 2021-03-02 03:39:34
回答 1查看 422关注 0票数 2

我想编写一个PowerShell脚本,按照以下说明下载ZIP格式的GitHub存储库:

https://docs.github.com/en/rest/reference/repos#contents

代码语言:javascript
运行
复制
$Token = 'MyUserName:MyPAT'
$Base64Token = [System.Convert]::ToBase64String([char[]]$Token)

$Headers = @{
    "Authorization" = 'Basic {0}' -f $Base64Token;
    "accept" = "application/vnd.github.v3+json"
    }

$Uri = "https://api.github.com/repos/{owner}/{repo}/zipball"
$r = Invoke-WebRequest -Headers $Headers -Uri $Uri -Method Get | Out-File "D:\MyRepo.zip"

代码确实下载了zip文件,但我在尝试打开zip文件时收到以下错误消息:

代码语言:javascript
运行
复制
D:\MyRepo.zip
The archive is either in unknown format or damaged

我是PowerShell的新手,如果有任何帮助,我将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 04:54:16

您可能需要更仔细地查看

下载-a-repository-archive-zip

说明。它说响应将有一个302重定向到下载的URL。

不会自动重定向,但会提供响应头。

如果将最后一行更改为:

代码语言:javascript
运行
复制
$response = Invoke-WebRequest -Headers $Headers -Uri $Uri -Method Get

您可以查看$response对象的标头并发出另一个

使用相同的标头和302 Uri:

代码语言:javascript
运行
复制
$RedirectedResponse = Invoke-WebRequest -Headers $Headers -Uri $RedirectedURI -Method Get

将具有您可以解码并写入本地文件系统的编码文件内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66428571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档