此箱子实现了对资源文件的增量更新功能,在开发过程中如果用到了一些资源文件,可以把文件统一拷贝到dev目录下,当本箱子被构建时会自动将资源进行压缩处理,压缩后的文件存放在compressed目录中。 对于压缩后的资源文件来说,扩展名是.cba(Compressed Bitar Archive)格式,如果您是开发人员同时保留源文件和压缩副本是很正常的。 但我们只会把压缩后的文件交给git(vcs,版本管理系统)进行管理,这意味着别的开发者将无法克隆到压缩之前的文件,但这毫无关系,因为得到的文件可以互相转换,并且我们通常只需要压缩后的文件。 您可以随时把他上传到任意的服务器上进行使用,但您的httpserver程序必须实现http协议头中的Range字段,也就是说您的服务程序必须可以支持断点续传功能,我们推荐使用nginx进行文件部署。 RigelA团队拥有官方的服务器,如果您只是普通用户,可以不需要建立自己的资源服务器,仅当你是开发者通过本源码修改发布时,才需要关注这里的实现,以便于您可以将自己的资源文件正常部署。
- 在构建项目时,可以自动压缩资源文件;
- 把压缩文件分成了若干个可恢复的小数据块(chunk),每一个块都有唯一的索引和校验值;
- 当程序读取资源时,会和服务器进行同步,如果有数据块变化,或者是本地文件损坏,都会从服务器下载正确的数据;
- 每一个压缩文件都生成唯一的校验和,保证了网络下载资源的可靠性和完整性;
- 最重要的是节省服务器带宽占用,因为有上述机制,所以每次同步文件只会同步丢失的数据块,而不是下载整个文件。