【问题标题】:Download github release with curl使用 curl 下载 github 版本
【发布时间】:2017-09-05 16:59:13
【问题描述】:

this URL 上,我可以下载包含正式版本的 .tar.gz。 (我知道它也可以在 API 端点上使用,但它也包含测试包。

现在我想知道为什么这不起作用:

$ curl -O https://github.com/yarnpkg/yarn/releases/download/v0.23.4/yarn-v0.23.4.tar.gz

我得到一些.tar.gz,它是 4KB 而不是 3.6MB。它没有显示错误。我错过了什么?如果可能的话,我想使用这个 URL 而不是 API。

【问题讨论】:

标签: curl github


【解决方案1】:

如果您执行以下操作,它将正确下载:

wget https://github.com/yarnpkg/yarn/releases/download/v0.23.4/yarn-v0.23.4.tar.gz

如果你想使用 curl,你必须使用重定向 -L 选项来跟随重定向链接并将输出定向到这样的文件中:

curl -L https://github.com/yarnpkg/yarn/releases/download/v0.23.4/ya‌​rn-v0.23.4.tar.gz > yarn.tar.gz

【讨论】:

  • 或者使用curl -OL <link>自动选择文件名。
【解决方案2】:

2021 更新使用 wget 从 GitHub 下载

还将展开和删除存档。只需编辑 REPLACE_ 值,然后复制/粘贴

tgz

GH_USER=REPLACE_WITH_USER \
GH_REPO=REPLACE_WITH_REPO \
GH_BRANCH=REPLACE_WITH_BRANCH \
wget https://github.com/${GH_USER}/${GH_REPO}/archive/refs/tags/${GH_BRANCH}.tar.gz \
-O "${GH_REPO}-${GH_BRANCH}.tar.gz" && \
tar -xzvf ./"${GH_REPO}-${GH_BRANCH}.tar.gz" && \
rm ./"${GH_REPO}-${GH_BRANCH}.tar.gz"

zip

GH_USER=REPLACE_WITH_USER \
GH_REPO=REPLACE_WITH_REPO \
GH_BRANCH=REPLACE_WITH_BRANCH \
wget https://github.com/${GH_USER}/${GH_REPO}/archive/refs/tags/${GH_BRANCH}.zip \
-O "${GH_REPO}-${GH_BRANCH}.zip" && \ 
unzip ./"${GH_REPO}-${GH_BRANCH}.zip" && \
rm ./"${GH_REPO}-${GH_BRANCH}.zip"

【讨论】:

    【解决方案3】:

    我希望这对某人有所帮助 -> 确保您的存储库是public

    然后正如其他答案中所解释的那样,这应该可以工作:

    curl -LO 'https://github.com/<user>/<repo>/archive/refs/tags/<1.0.0>.tar.gz'
    

    私有时,访问发布文件需要令牌,您将收到NOT FOUND 作为响应。那是我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-14
      • 2011-08-10
      • 2014-02-21
      • 2018-04-10
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      • 2015-01-30
      相关资源
      最近更新 更多