Github如何发布生成存档文件名?

时间:2013-12-25 16:25:23

标签: git curl github

我刚刚在github上为我的NFQL软件创建了版本 以下是发布页面:https://github.com/vbajpai/nfql/releases

最新版本v0.7。如果我单击tarball按钮,它将保存nfql-0.7.tar.gz。这很棒,而且我希望如何命名我的发布档案。

enter image description here

但是,我需要tarball本身的下载链接。这样我就可以为tarball创建一个MacPorts / Homebrew文件。如果我查看下载链接,它是:

a)https://github.com/vbajpai/nfql/archive/v0.7.tar.gz
b)https://codeload.github.com/vbajpai/nfql/tar.gz/v0.7

现在,如果我使用curl/wget,则会将tarball保存为v0.7.tar.gz。我知道我可以在使用curl/wget下载时指定文件名。我想知道是否有一个可靠的github URL我可以用来获取nfql-0.7.tar.gz的tarball。

PS:无论如何,github在那里做什么?当我直接点击源代码链接时,浏览器如何更改文件名?

2 个答案:

答案 0 :(得分:8)

第一个链接重定向到第二个链接:

curl --head https://github.com/vbajpai/nfql/archive/v0.7.tar.gz
HTTP/1.1 302 Found
Location: https://codeload.github.com/vbajpai/nfql/tar.gz/v0.7
...
  

直接点击时,浏览器如何更改文件名   源代码链接?

文件名是通过自定义Content-Disposition HTTP标头定义的:

curl --head https://codeload.github.com/vbajpai/nfql/tar.gz/v0.7
HTTP/1.1 200 OK
Content-Disposition: attachment; filename=nfql-0.7.tar.gz
...

因此,您可以使用curl的{​​{1}},-O, --remote-name-L, --location将(输出)写入输出到名为远程文件的文件,然后按照重定向和使用标题提供的文件名:

-J, --remote-header-name

答案 1 :(得分:3)

当问题最初发布时,不确定这是否有效,但现在您可以使用https://github.com/vbajpai/nfql/archive/v0.7/nfql-0.7.tar.gz直接获取正确的文件名而无需查看标题。使用wget时非常好,因为您不需要标记,只需wget https://github.com/vbajpai/nfql/archive/v0.7/nfql-0.7.tar.gz

请注意,它是选择要使用的版本的倒数第二个路径组件 - 您可以将要包含的任何文件名作为最后一个路径组件。