V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
proxytoworld
V2EX  ›  问与答

如何循环下载 GitHub release 页面的文件

  •  
  •   proxytoworld · 36 天前 · 1070 次点击
    这是一个创建于 36 天前的主题,其中的信息可能已经有所发展或是发生改变。

    release 里面发布了几十个包,有脚本能循环下载 release 里面的文件吗,找了一下没找到。

    7 条回复    2024-08-19 09:47:49 +08:00
    proxytoworld
        1
    proxytoworld  
    OP
       36 天前
    可以用 cli gh release download -p "*" -D gh_latest -R username/repo
    1rv013c6aiWPGt24
        2
    1rv013c6aiWPGt24  
       36 天前 via Android
    笨办法,把版本号+下载链接写个遍历,挨个下,没匹配到的跳过匹配到的下载
    zsh2517
        3
    zsh2517  
       36 天前
    如果问题在于一个链接一个链接找比较麻烦,而且量不是特别大(能接受一部分手动的话)

    可以选中链接们复制,去这里( https://euangoddard.github.io/clipboard2markdown/) 或者 https://codepen.io/zsh2517/pen/ZEdEdzw 这里,读取剪贴板为 markdown/富文本格式。

    然后配合正则表达式和简单的代码解析出来下载链接就行
    hguandl
        4
    hguandl  
       36 天前
    可以使用 GitHub API 。需要注意的是这个有 IP 访问频率限制,所以最好带上 token 请求。

    https://docs.github.com/rest/releases/assets#list-release-assets
    https://docs.github.com/rest/authentication/authenticating-to-the-rest-api
    xxx027
        5
    xxx027  
       36 天前 via Android
    有 api 的,稍作处理就可以全都下下来了
    0o0O0o0O0o
        6
    0o0O0o0O0o  
       36 天前
    我一般尽量避免用 API

    curl -fsL https://github.com/junegunn/fzf/releases/expanded_assets/v0.54.3 | \
    grep -oP '(?<=<a href=")/[^"]+/releases/download/[^"]+(?=")' | \
    xargs -I {} curl -fLO "https://github.com/{}"
    proxytoworld
        7
    proxytoworld  
    OP
       34 天前
    @zsh2517 你这个倒是合理,用富文本带出来
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1112 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:22 · PVG 07:22 · LAX 16:22 · JFK 19:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.