我试图使用github API中的browser_download_url下载一个私有仓库版本,但URL显示为404 Not Found,我设置了身份验证:token<my_token>正确,但我仍然得到404。
仓库来自我的组织,如果仓库有用的话,我将使用只读服务帐户。
Here is a postman image with my configuration
使用我的浏览器我可以下载文件刚刚好。
有人知道发生了什么吗?
我试图使用github API中的browser_download_url下载一个私有仓库版本,但URL显示为404 Not Found,我设置了身份验证:token<my_token>正确,但我仍然得到404。
仓库来自我的组织,如果仓库有用的话,我将使用只读服务帐户。
Here is a postman image with my configuration
使用我的浏览器我可以下载文件刚刚好。
有人知道发生了什么吗?
3条答案
按热度按时间rggaifut1#
您可能不想使用
browser_download_url
字段。该端点被设计为在设置了会话cookie的浏览器中处理用户,并且您的API请求将不会被正确配置。出于安全原因,使用cookie处理用户请求的端点和处理编程请求的端点通常是不同的,并且使用不同的身份验证。要下载发布资产,请使用
url
字段,该字段通过API,应该可以适当地处理事情。您的令牌将需要具有适当的范围(我相信 * 是repo
),并且如果您的组织正在使用SSO,则启用SSO,并且您还需要将Accept
标头设置为application/octet-stream
(看起来您已经这样做了)并处理发生的任何重定向。1cklez4t2#
对于其他有这些问题的人,我的解决方案是从我使用的编程语言(Python)中添加application/octet-stream头,由于某种原因,它在postman中不起作用,您将获得无效的媒体类型头。
yduiuuwa3#
对我来说,问题是实际的令牌。如果认证失败,即使资源存在,Github API也会返回404(为了不泄露信息)
我的问题是,我认为一个具有
read
访问权限的令牌就足够了。但是,要下载发行版,您还需要write
访问权限。