标签:
默认每次发布游戏,不管是发布大版本的安装包,还是小版本的资源更新,都会有一个唯一的版本号 {version} ,这个版本号可以通过一个固定的 WEB API 去获取,比如 http://cdn.game.xxx.com/version.php
在 {web_dir} 创建文件名为 {version} 的文件夹,然后上传游戏资源到 {version} 目录下,目录结构为 {web_dir}/{version}/{res}
每次更新之前,将 {files_info} 和 {new_files_info} 进行比对,计算出文件差异 {diff_info},比如增加了什么文件,删除了什么文件,修改了什么文件等等,{diff_info} 的文件内容大概是这样:
+icon/skill/100.assetbundle
-icon/skill/101.assetbundle
*icon/skill/102.assetbundle
+ 表示增加,- 表示删除,* 表示修改,这个完全可以自己定义
当需要发布新版本的时候,此时版本号为 {new_version} ,在 {web_dir} 创建文件名为 {new_version} 的文件夹,然后递归的将 {web_dir}/{version} 中的所有文件做软链接,做到 {web_dir}/{new_version} 中,只对文件创建软链接,文件夹需要创建,此时,{web_dir}/{new_version} 拥有和 {web_dir}/{version} 一样的资源,但完全不占用硬盘空间。
接着,将 {diff_info} 中的信息应用到 {web_dir}/{new_version} 中,如果增加,就将软链接删除,并且上传资源,依此类推。
软链接的删除需要回溯到最根源的地方,因为随着游戏版本发布的增多,可能最新版本的文件,其他链接的目标是一个很老的版本的文件。
大概的思路就是这样
标签:
原文地址:http://www.cnblogs.com/yili16438/p/7d5d84602a5aa307e3f38c0bfb7fe11e.html