目前在做一个app,是一个轻量的论坛社区。因为图片都是比较隐私的,所以打算用七牛的图片存储。
在开发的过程中遇到一个问题,就是什么时候把图片的下载token发给客户端。
比如用户请求一篇文章,假设这篇文章里面有很多张图片。我设想的方案是在用户每次请求文章的时候,把图片地址拿出来算token,然后返回拼接好的连接地址给客户端。
不过如果我在server有做文章的缓存的话,就无法更新token值了。因为一旦缓存起来,请求直接返回缓存内容。
我设想的方案是把server端的缓存失效时间算短一点,只要比之前生成的下载token的过期时间更短,应该就不会出现问题。
不知道大家在用私有图片下载token的过程中有没遇到类似的问题,又是如何解决的呢?
有个方法,看合适不:
图片地址:http://site/qinuimg/1.jpg
骑牛地址:http://qiniu/1.jpg
在文章内插入图片地址,这样缓存不缓存没关系.因为地址一直不变.在服务器端对图片请求做301,即用户访问图片地址时返回301转到有效的骑牛地址+token
因为骑牛本身的缓存方式,是跟骑牛地址关联的,所以每次用户访问都可以使用到骑牛的cdn加速.
缺点一: 就是会产生大量的301请求,增加服务器端的请求量,不过量少(1万IP每日)的话没啥影响,因为根本不需要多少性能处理.量大可以考虑单独一台低配服务器,配和独立的图片二级域名.
缺点二: 文章中图片数量过多(100张以上),会延长网页整体加载时间,数量少也没影响的