规划不可变版本安装包
当前下载采用固定白名单路径。本页保留原项目的演进方案,说明如何迁移到按版本保存的对象。
为什么考虑版本路径
固定路径更新方便,但发布时缓存中的目录与实际文件可能短暂不同。当前实现用目录快照、文件元数据校验和二次点击处理这种变化。流量或版本保留需求增加时,可以改用不可变的版本对象。
规划对象布局
新布局应由服务端根据产品、系统、架构和已验证版本生成。不要接受浏览器传来的任意对象路径。每个版本路径只写入一次,安装包与对应 checksums 一起保存。
manifest 作为“当前版本”指针,包含版本、文件名、大小、SHA-256 和白名单对象标识。用户看到的文件信息和获得的签名必须来自同一份快照。
安排迁移顺序
- 把同版本文件上传到两云的不可变路径,核对 SHA-256 和权限。
- 实现并测试新旧 manifest 的明确版本解析,不用猜测字段。
- 给服务端增加新路径校验,只允许 manifest 中验证过的对象。
- 先在预览环境验证,再切换当前指针。
- 保留仍在有效签名期内的旧版本和回退指针。
并发与缓存规则
目录更新采用原子替换。前端请求的 variant 若对应新快照,应返回安装包已更新状态并要求用户重新确认。缓存可以加速目录读取,但不能让旧授权指向已经被覆写的不同文件。
验收后再清理
验证多版本并存、双云切换、HEAD、Range、旧链接过期和回退。保留时间至少覆盖签名有效期与 CDN 缓存策略。
本页是维护方案,不表示当前服务已经使用版本化路径。真正实施前必须同步修改签名白名单、manifest 适配器、测试和部署文档。
阅读中遇到问题?联系支持