二进制差异(BSDiff/VCDiff)静态托管方案讨论

2021-06-06 15:26:15 +08:00
 chinvo

现在项目采用全量更新, 每次检查更新先请求 项目.manifest, 里面有最新版本的 ID, 然后请求 项目 /版本 /版本.manifest 获取文件列表, 文件列表是一个 相对路径 - hash 的 map, 更新时逐一对比 hash, hash 不匹配就到对应路径下载文件.

/-
 |- 项目.manifest
 |- 项目
    |- 版本 1 (空目录)
    |- 版本 2 (空目录)
    |- 版本 3
    |  |- 版本.manifest
    |  |- 0
    |  |  |- 00
    |  |  |- ...
    |  |- 1
    |  |- ...
    |  |- f

现在想要改成二进制差异更新, 目前想到的设计方案就是额外增加差异存储目录, 更新时检查 项目 /本地版本-最新版本 /差异.manifest 是否存在, 存在就进行差异更新, 不存在就按原有模式更新.

/-
 |- 项目.manifest
 |- 项目
    |- 版本 1 (空目录)
    |- 版本 2 (空目录)
    |- 版本 3
    |- 版本 1-版本 2 (空目录)
    |- 版本 1-版本 3
    |- 版本 2-版本 3
    |  |- 差异.manifest
    |  |- 0
    |  |  |- 00
    |  |  |- ...
    |  |- 1
    |  |- ...
    |  |- f

不知道各位有没有更好的方案.

另外差异存几个版本合适呢?

444 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/781696

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX