基本思想是应用层做一些配合,比如凡是被替换的部分都会以_开头,对于被替换的内容也有一些硬性规定,比如只能是32位/64位整数,8位/16位连续16进制数(历史遗留图片会对url作md5作为key),这样空间利用率会高一些,并且dc_encode, de_decode实现也会简单些。由于改变key成本很高,得预先作一些规划,所以就问了这个问题。既然什么时候都可以,倒不急,反正现在图片量不是太大。
我没怎么看dc_encode的代码,我测了一下,它不会对 "312.189/deal/a389189c493df234.jpg" 进行压缩,其中312.189表示缩略图的长宽,但是会对"deal/a389189c493df234.jpg"进行压缩,觉得比较诡异。如果我在应用层配合做一些改变,将被替换的部分以_开头,原来的url可以写成:
"312.189/deal/_a389189c493df234.jpg",这样我可以更加精确的指定哪部分被替换,比如url: "/deal/_47245_78.jpg"替换两个数字,这样效率更高,坏处是和应用绑定在一起了,需要事先规划。