>前言

前段时间在弄博客评论区的表情包,然后看到了 BiliEmoji 这个项目,这个仓库收集了 B 站 所有的表情,但是我只需要其中的小黄脸表情,其他表情用不上, 所以就想着有什么办法可以下载 Github 中指定的文件夹,而不需要下载整个仓库,于是找到了 github-directory-downloader 这个工具,这篇文章单纯转载分享,已向原作者申请授权。

>工具地址

GitHub directory downloader

>使用方式

  • 打开想要下载的 github 文件夹,如 BiliEmoji 的小黄脸文件夹,则打开该页面。
  • 复制页面链接,粘贴到本工具输入框。
  • 点击下载。

>背景

  • Github 不支持部分文件下载,只能下载整个项目。
  • Github 国内网速较慢,只能下载整个项目需要等待很长时间。譬如 facebook 的 react 项目,有时候我们只想下载 react-dom 来学习。但却要下载包含 react-js 等 35 各其他功能的整个项目。导致无谓的时间浪费。
  • 网络上有相关解决方案,譬如修改 svn,修改 git 路径等,但均有一定使用成本和软件依赖。本项目意在将使用成本降到最低。

>特点

  • 无依赖,无需安装软件,不需要依赖 svn,甚至连 git 都不需要。有浏览器即可使用。
  • 操作简单,复制 github 页面链接,点击下载即可。
  • 支持特定分支和特定 tag 的文件下载,精确到单文件下载。

>功能说明

  • 【解析下载】输入 github 链接,点击下载文件。
  • 【重新下载错误文件】当部分文件下载失败时,点击该按钮,重新下载错误文件。
  • 【强制下载现有文件】将已经下载好的文件强制整合下载。可以提前观看已经下载的文件。该操作不影响当前下载进程。
  • 【文件条】对应每一个文件的下载情况。「灰色」:待下载,「绿色」:下载成功,「红色」:下载失败。点击红色文件栏可重新下载对应错误文件。

>特别说明

  • 项目使用到 github 提供的开放性 API,故仅支持 github 文件下载。不支持 gitlab,gitee 等平台。
  • 目标仓库需为公开仓库,否则无权限下载。

>原理

  • 文件下载使用的是 github 开放 API,如「罗列所有分支」「罗列所有 tag」「下载文件」等
  • 文件压缩,使用的是 jszip 库

>原文地址

GitHub 「特定」文件夹下载工具