当前位置: 首页 > 知识库问答 >
问题:

如何下载GitHub发行版的二进制文件?

楚弘益
2023-03-14

我有一个回购协议,里面有我需要的二进制文件。

我可以

git checkout tags/thetagoftherelease

它似乎签出了正确的标记,但没有下拉二进制文件。如何下拉添加到版本的二进制文件(版本上的绿色框)?

在发行版中添加了二进制文件的图片。

共有3个答案

通俊发
2023-03-14

这是一个迷你脚本下载资产知道它的文件名(可以很容易地修改下载其他资产:

asseturl=$(curl -H "Authorization: token ${token}" https://api.github.com/repos/${repo}/releases/${releaseid}/assets | jq ".[] | select(.name==\"${filename}\") | .url")
curl -L -H "Authorization: token ${token}" -H "Accept:application/octet-stream" $(echo $asseturl | tr -d '"') > ${filename}
  • $token是github的访问令牌
  • $filename是资产的文件名
  • $releaseid存储二进制文件的releaseid
子车宏浚
2023-03-14

二进制发布资产存在于Git之外,无法使用标准工具进行管理。

不过,它们应该可以通过GitHub的API获得。

>

  • 列出存储库的发布资产:

    GET /repos/:owner/:repo/releases/:id/assets
    

    这将发回一个JSON文档,列出存储库的发布资产,例如。

    [
      {
        "url": "https://api.github.com/repos/octocat/Hello-World/releases/assets/1",
        "browser_download_url": "https://github.com/octocat/Hello-World/releases/download/v1.0.0/example.zip",
        "id": 1,
        "name": "example.zip",
        "label": "short description",
        "state": "uploaded",
        "content_type": "application/zip",
        "size": 1024,
        "download_count": 42,
        "created_at": "2013-02-27T19:35:32Z",
        "updated_at": "2013-02-27T19:35:32Z",
        "uploader": {
          "login": "octocat",
          ...
        }
      }
    ]
    

    根据上面的id定义,从所需版本检索助理:

    GET /repos/:owner/:repo/releases/assets/:id
    

    如果要下载资产的二进制内容,请传递媒体类型“application/octet stream”。API要么将客户端重定向到该位置,要么在可能的情况下将其直接流式传输。API客户端应处理200302响应。

    如文件所述,这些请求都与https://api.github.com

  • 颜森
    2023-03-14

    我已经尝试了好几天,试图找到正确的答案,最后我找到了如何通过curl命令来实现这一点。这是一个三步过程。

    首先,要获取最新版本的资产列表:

    curl -H "Authorization: token YOURGITHUBTOKEN" \
        https://api.github.com/repos/NAME/REPO/releases/latest 
    

    然后在JSON中,查找所需资产的url。例如,它看起来像:

    "url": "https://api.github.com/repos/NAME/REPO/releases/assets/1275759"
    

    然后将其传递给另一个curl命令以检索实际的URL,它实际上是指向AmazonS3文件的链接。

    curl -H "Authorization: token YOURGITHUBTOKEN" \
         -H "Accept:application/octet-stream" \
         -i https://api.github.com/repos/NAME/REPO/releases/assets/1275759
    

    URL将在HTTP响应的“位置”字段中,然后使用curl像这样获取文件:

    curl "https://github-cloud.s3.amazonaws.com...." -i -o FILENAME
    
     类似资料:
    • 问题内容: 我正在尝试使用以下方法下载此文件(http://github.com/downloads/TheHolyWaffle/ChampionHelper/ChampionHelper-4.jar),但似乎无法正常工作。我收到一个空文件/损坏的文件。 但是我可以使用相同的方法从我的保管箱(http://dl.dropbox.com/u/13226123/ChampionHelper-4.jar

    • 我知道如何从GitHub版本中创建NPM依赖项: 但我给出了以下错误: 二进制版本资产存在于GitHub之外,并且正在使用AWS3。 URL正在重定向,状态为并且HTTP位置标头设置为 问题: 为什么NPM不遵循重定向? 为什么是? 有没有方法将NPM依赖项链接到GitHub发行版的二进制tarball?怎么做? 我的上下文和需要: 我有一个私人GitHub存储库 在“部署”(转换等)之前需要构建

    • 问题内容: 我建立与工作流 Gitlab , 詹金斯 和-也许- 的Nexus (我需要一个工件存储装置)。我想让GitLab存储 发行版/二进制文件 -是否可以方便地进行? 我不想有另一个可以从中下载版本(和文档)的服务,但是希望以某种方式将其与存储库管理器集成在一起,就像在GitHub中处理版本一样。有什么线索吗? 问题答案: 2015年11月更新:GitLab 8.2现在支持发行版 。 借助

    • 问题内容: 在C语言中,我们可以构建二进制文件(目标文件和可执行文件)的调试版本或发行版本。我们如何在Go中做到这一点? 问题答案: 在Go中,通常没有调试版本或发行版本。 默认情况下,将符号和调试信息与二进制文件结合在一起。但是,您可以使用删除符号并调试信息。

    • 问题内容: 使用带有角的ResponseEntity下载任何文件不起作用 我需要在客户端使用angular下载文件,该文件可以具有pdf或excel或image或txt的任何格式…我的方法仅适用于txt文件,但给我excel和image的失败格式,对于pdf,它会给出一个空的pdf。 所以在我的控制器中,这里是调用service方法的函数: 而我的service.js具有: 我的服务方法是这样的:

    • 我在android应用程序中使用OKHTTP客户端进行网络连接。 接受下面的回答。我修改过的代码: