我正在尝试使用从 github API 获得的 browser_download_url 下载私有存储库版本,但该 URL 给了我 404 Not Found,我正确设置了身份验证:令牌
存储库来自我的组织,如果有用的话,我正在使用该存储库的只读服务帐户。
使用我的浏览器我可以很好地下载文件。
有人知道发生什么事吗?
您可能不想使用
browser_download_url
字段。该端点旨在处理具有会话 cookie 设置的浏览器中的用户,并且您的 API 请求将不会正确配置。出于安全原因,使用 cookie 处理用户请求的端点和处理编程请求的端点通常是不同的,并且使用不同的身份验证。
要下载发布资产,请使用
url
字段,该字段通过 API 并应适当处理事情。您的令牌需要具有适当的范围(我相信是repo
),并且如果您的组织正在使用SSO,则启用SSO,并且您还需要将Accept
标头设置为application/octet-stream
(看起来您已经在这样做)并处理发生的任何重定向。
对于遇到这些问题的其他人,我的解决方案是从我使用的编程语言(Python)添加应用程序/八位字节流标头,由于某种原因它无法从邮递员中工作,您将得到一个无效的媒体类型标头。
对我来说问题是实际的令牌。即使资源存在,Github API如果认证失败也会返回404(为了不泄露信息)
我的问题是,我认为具有
read
访问权限的令牌就足够了。但是,要下载版本,您还需要 write
访问权限。
也遇到了同样的问题,我确实拥有完全授予访问权限的 PAT 令牌,然后我尝试从这里下载 json latest.json
但是一直打404确实有:
Accept: application/octet-stream
Authorization: Bearer {PAT}
但不确定可能出了什么问题,也尝试过:
Accept: application/vnd.api+json
还是404