概览
GitHub 网盘是一款采用 Fluent Design 的跨平台桌面网盘客户端。文件内容存放在 GitHub Release 中,目录结构则由所选分支上的轻量 netdisk.json 保存。
免责声明
本软件不是 GitHub 官方软件,与 GitHub 无任何从属或隶属关系。
所有存储服务均由 GitHub 提供,用户自行确保发布的内容不违反用户所在地的法律与 GitHub 的服务条款、可接受使用政策及其他 GitHub 站点政策。本软件的所有贡献者均不因用户的使用导致的后果承担任何责任。
GitHub Release 存储空间、流量和 API 调用次数均受 GitHub 服务条款与配额限制。本软件不会绕过这些限制,也不应被用于侵权或滥用服务。
存储方式
兼容仓库会在所选分支根目录保存 netdisk.json。索引中记录格式版本与嵌套文件树;每个文件条目指向对应的 Release 标签和有序资产,并保存原始大小与 SHA-256 哈希值。
这样的设计将文件内容与 Git 历史分开:
- Git 保存体积小、易于读取的目录索引。
- GitHub Release 保存实际文件内容。
仓库与文件管理
桌面客户端提供常用的文件管理操作:
- 无需登录即可浏览兼容的公开仓库。
- 登录后访问获得授权的私有仓库。
- 在客户端内创建、添加和管理网盘仓库。
- 上传、下载、重命名和删除文件。
- 创建文件夹并递归下载其中内容。
- 切换仓库分支,快速重新打开最近使用的仓库。
- 使用其他名称保存文件到本地。
- 为文件生成可分享的网页下载链接。
- 为小于 1.9 GiB 的未分片文件生成原始 Release 链接。
可靠传输
超过 1.9 GiB 的文件会自动拆分为有序的 Release 资产。下载后,客户端会合并分片,并使用 SHA-256 校验完整性。
传输任务统一显示在“任务”页面,可以暂停、恢复或取消。上传任务恢复时,会复用 Release 中已经完成的资产,无需重新上传。
开启 GitHub 镜像后,公开仓库的文件会在每次下载前测速并使用当前最快节点;私有仓库始终通过 GitHub API 下载。启用 aria2 时,客户端会直接调用 aria2c 命令行,并发下载 Release 资产;找不到 aria2c 时会回退到基于 requests 的内置下载器。
访问方式与凭据
GitHub 网盘提供三种访问方式:
- GitHub App 授权(推荐):在浏览器中输入一次性验证码,安装 GitHub App,并选择允许访问的仓库。
- 只读模式:无需登录即可浏览兼容的公开仓库。
- Personal Access Token(高级):仅在 GitHub App 授权不可用时用于兼容或故障排查。
凭据保存在操作系统凭据库中。实际可访问的仓库仍取决于 GitHub App 的安装范围或 Token 所拥有的权限。
桌面集成
GitHub 网盘使用 PyQt 与 Fluent Design 组件,并支持:
- 浅色与深色主题。
- 支持环境中的云母材质效果。
- 可调界面缩放与高 DPI 支持。
- 简体中文、繁体中文和英文界面。
- 系统托盘与原生窗口集成。
- 默认下载位置、文件夹优先排序、aria2 与 GitHub 下载镜像。
- 启动时检查更新,并可下载、运行适合当前系统的安装包。
安装后的应用会注册 github-netdisk:// 协议。受支持的链接可以打开仓库,或预先填写上传、下载任务;应用会先展示解析后的内容,确认后才开始执行。
开源许可
GitHub 网盘基于 GPL-3.0 开源,主要使用 PyQt5、PyQt-Fluent-Widgets 和 PyGithub,完整名单见鸣谢。