我刚刚在github上为我的NFQL软件创建了版本.
这是发布页面:https://github.com/vbajpai/nfql/releases
对于最新版本,v0.7
.如果我点击tarball按钮,它会保存一个nfql-0.7.tar.gz
.这很棒,而且我希望如何命名我的发布档案.
但是,我需要tarball本身的下载链接.这样我就可以为tarball创建一个MacPorts/Homebrew文件.如果我查看下载链接,它是:
一个)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我可以用来获取我的tarball nfql-0.7.tar.gz
.
PS:无论如何,github在那里做什么?当我直接点击源代码链接时,浏览器如何更改文件名?
不确定最初发布问题时是否可行,但是现在您可以使用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
请注意,选择要使用的版本的是倒数第二个路径组件-您可以将想要拥有的任何文件名放在最后一个路径组件中。
第一个链接提供重定向到第二个链接:
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
的-O, --remote-name
,-L, --location
并-J, --remote-header-name
写输出到一个名为远程文件文件,执行重定向并使用标头提供的文件名(RESP):
curl -LOJ https://github.com/vbajpai/nfql/archive/v0.7.tar.gz