Skip to content

开机动画 1.1.0 —— 大文件可续传

Latest

Choose a tag to compare

@NativeDog1 NativeDog1 released this 30 Sep 10:47

开机动画 1.1.0

大文件现在真的能装上了。

1.0.0 的下载是单连接、无续传、无重试 —— 实测在国内下载 51.8 MB 的社区片头会在 26 MB 处断掉,
而断了就只能从头再来,等于把 4K 原画排除在可用范围之外。

1.1.0 换成 断点续传 + 自动重试:分块读 → 服务器支持 HTTP Range 就接着下 →
中断按 2/4/6/8/10 秒退避重试(最多 6 轮)→ 每轮核对字节数 → 最后仍以 sha256 兜底。

下载这个文件(发给客户的唯一文件)

BootAnimation-Setup.exe(32.41 MB)—— 播放器和四段片头都在里面。

  1. 双击安装 → 选一段片头 → 完成
  2. 不需要管理员权限,不需要安装 .NET 运行时
  3. 第一次运行会有 SmartScreen 提示(安装包没有代码签名),点 更多信息 → 仍要运行

这一版改了什么

下载 支持 HTTP Range 断点续传;中断后自动退避重试(最多 6 轮);单次读超时 60 秒,卡住就重试而不是一直等
界面 进度条旁会显示「连接中断,已保留 26.0 MB,4 秒后自动续传(第 3/6 轮)…」,不再是一句干巴巴的失败
失败 屡次中断时会保留已下载的部分,再点一次从断点继续(不再从头开始)
安全 仍然只接受 https 直链;sha256 + 字节数双重校验,不符就删除、绝不安装

怎么验证它真的会续传

仓库里带了测试服务器,它故意在传输中途掐断连接:

# 前两轮各发 1 MB 就掐断,之后正常
node tools\serve-test.mjs "D:\某个视频.mp4" 8899 2 1048576

然后用一个指向它的 bootanim://install?... 链接唤起客户端(需要 #if BATEST 的测试构建,
见 src/Community.cs 里的说明),日志里会依次出现:

已收 1048576 字节,等待 2 秒后续传
续传:本地已有 1048576 字节,发送 Range=1048576-(HTTP 206)
已收 2097152 字节,等待 4 秒后续传
续传:本地已有 2097152 字节,发送 Range=2097152-(HTTP 206)
社区片段安装完成 <id>(3252011 字节)

1.1.0 发布前就是这么验的。

配套的社区改动

同一批改动里,社区的投稿上限从 100 MB 提到 2 GB(对齐 GitHub Release 的单文件上限),
投稿机器人下载也支持续传。超过 25 MB 的 4K 原画现在有明确路径:
把视频上传到你自己仓库的 Releases(单文件最大 2 GB,免费),再把直链贴进投稿表单 ——
Issue 附件上限就是 25 MB,拖进去会直接上传失败。

校验下载完整性

BootAnimation-Setup.exe
  大小   33,987,072 字节 (32.41 MB)
  sha256 7a12c62f67a053804029fa3fece5ea76a16314609116058545db6fb74d173185
Get-FileHash .\BootAnimation-Setup.exe -Algorithm SHA256

它做什么,不做什么

做:登录 Windows 后全屏播放你选的那段片头,播完自动消失。按 Esc 或点一下画面随时退出。

不做:不改开机画面、不碰系统引导、不改 Winlogon / Shell、不装驱动、不要管理员权限。
只动三处(程序目录、一条 HKCU 自启键值、一个数据目录),卸载时都会清掉(数据目录保留你的选片)。