Curl 从脚本访问/下载github文件的正式方式?
如何从github存储库中访问/下载特定文件的一个常见提示是使用rawgit,例如:Curl 从脚本访问/下载github文件的正式方式?,curl,github,wget,github-api,Curl,Github,Wget,Github Api,如何从github存储库中访问/下载特定文件的一个常见提示是使用rawgit,例如: curl https://rawgit.com/webmin/webmin/master/os_list.txt 这将为您提供webmin github存储库中文件的当前版本 然而,对于生产脚本来说,这样做有很大的缺点,因为如果经常使用rawgit URL,您将被阻止。这也在rawgit.com上声明: 使用此URL进行开发 您推送到GitHub的新更改将在几分钟内反映出来。 过多的流量将被限制并列入黑名单
curl https://rawgit.com/webmin/webmin/master/os_list.txt
这将为您提供webmin github存储库中文件的当前版本
然而,对于生产脚本来说,这样做有很大的缺点,因为如果经常使用rawgit URL,您将被阻止。这也在rawgit.com上声明:
使用此URL进行开发
您推送到GitHub的新更改将在几分钟内反映出来。
过多的流量将被限制并列入黑名单
我与githup支持部门联系,以便在密集开发后解锁,并得到了使用github API而不是rawgit的答案
问题:如何使用github API从github存储库检索特定文件?回答:使用以下格式的URL
https://api.github.com/repos/:owner/:repo/contents/:path?ref=tag/commit/branch
和Accept:application/vnd.github.v3.raw
头集
要从上述示例中获取
os lists.txt
文件,请使用:
curl -s -H "Accept:application/vnd.github.v3.raw" https://api.github.com/repos/webmin/webmin/contents/os_lists.txt
说明:
github API的基本URLhttps://api.github.com/repos/
将其替换为所有者和存储库的名称:owner/:repo/
将其替换为存储库中文件的路径:path
可选参数,用于选择从中获取文件的分支、提交或标记。如果未指定,则从存储库默认分支获取文件?ref=
- 获取原始文件时,必须设置
头。如果没有此标头,您将获得JSON格式的文件信息:Accept:application/vnd.github.v3.raw
{
“名称”:“os_list.txt”,
“路径”:“os_list.txt”,
“sha”:“2fa32a1860063f47c9d9ddcfe73368329cef0ba1”,
“尺寸”:31563,
“url”:”https://api.github.com/repos/webmin/webmin/contents/os_list.txt?ref=master",
“html_url”:”https://github.com/webmin/webmin/blob/master/os_list.txt",
“git_url”:https://api.github.com/repos/webmin/webmin/git/blobs/2fa32a1860063f47c9d9ddcfe73368329cef0ba1",
“下载url”:https://raw.githubusercontent.com/webmin/webmin/master/os_list.txt",
“类型”:“文件”,
“内容”:“IyBQY……”,
}
有关更多信息,请参阅:
参考资料: