feat: OTA 附件改用 7z 压缩包(体积 -73%),客户端纯 Rust 解压

- 发布脚本:附件打包为 <binary>.7z(-mx=9)+ .7z.sha256 上传;
  同时保留裸二进制附件,v1.0.3 及更早客户端(不认识 7z)仍可升级
- update.rs:pick_assets 优先选 7z、无则回退裸二进制;
  下载 → 大小对账 + sha256 校验 → sevenz-rust 解压出二进制暂存
  (压缩包随即删除);暂存目录清理排除 .7z
- UpdateInfo 增加 asset_name 字段区分压缩包/裸文件
- 实测 21.3MB exe → 5.8MB(7-Zip -mx=9)
This commit is contained in:
2026-09-29 17:29:47 +08:00
parent 1792c17eb2
commit 2e5e1b8143
5 changed files with 265 additions and 48 deletions
+2
View File
@@ -43,6 +43,8 @@ rfd = "0.17"
# OTA 自更新:Gitea Release 检查/下载(ureq 用 rustls,与 rumqttc 依赖同源)
ureq = { version = "2", features = ["json"] }
sha2 = "0.10"
# Release 附件为 7z 压缩包,纯 Rust 解压(客户端免装 7-Zip)
sevenz-rust = "0.6"
# 错误上报(自建 Sentry):panic 捕获 + 持久化错误;rustls 传输避免 openssl 依赖
sentry = { version = "0.49", default-features = false, features = [