七牛云存储的使用心得

蝉游记的图片和静态资源都是使用七牛云存储,七牛提供了很多方便开发人员的存储特性,省去了大量的基础架构搭建和开发时间,记录一下在近半年使用过程中的心得。

1. 客户端自传
常见的云存储上传文件流程一般如下:
用户 => 应用服务器 => 云存储提供商
这样多了一次上传的流程,和本地存储相比,会相对慢一些。

而七牛提供了客户端自传的功能,流程可以改成:
用户 => 七牛 => 应用服务器
用户直接上传到七牛的服务器,通过DNS智能解析,七牛会选择到最近的最合适的ISP服务商节点,速度会比原先快很多,上传成功以后,七牛的服务器使用回调功能,只需要将非常少的数据(比如key)post回应用服务器,应用服务器进行保存即可。

使用该项功能以后,蝉游记的上传速度经常被用户赞。

2. 回调功能+图像处理接口
因为蝉游记是以图片为主的游记记录工具,需要记录很多图片信息,比如宽高,exif的拍摄时间,经纬度等。在使用七牛之前,我们用ImageMagick对用户上传的图片进行处理,而通过七牛提供的回调功能,可以添加自定义参数,在用户上传文件成功以后,在七牛的服务器上执行相关操作,将结果post回来即可。以高宽为例子,只需要添加如下参数就完成了:

Ruby代码   收藏代码
  1. width=$(imageInfo.width)&height=$(imageInfo.height)  



通过这个改进,我们自己的服务器无需进行任何的图像处理工作,节约了大量的IO和CPU资源。

3. 缩略图
我们设置了5种不同大小规格的图片,根据用户的显示分辨率不同用不同的图片,达到下载速度和显示体验的最佳搭配,而七牛的缩略图定义非常方便,只需要在七牛的后台web界面进行定义:


然后在不同的url后面添加后缀即可,以这篇游记中的图片为例:
http://chanyouji.com/trips/26132#nt/824288

用前面定义的display做后缀,就是800的:
http://cyj.qiniudn.com/26132/1361648096426p17k483tdvikvpoq14tu1ssr13ssp.jpg-display

而改一下后缀display_ll,这张就变成500的:
http://cyj.qiniudn.com/26132/1361648096426p17k483tdvikvpoq14tu1ssr13ssp.jpg-display_ll

通过这个特性,我们还能够特别真对高清的ipad屏幕,输出最大规格的图片,让用户在浏览的时候有最好的视觉体验。

4. 镜像存储(源站加速)
除了云存储以外,七牛还支持传统CDN的镜像存储,只需要在后台配置一下源站即可:


然后只需要在rails的配置文件里面修改一下 config.action_controller.asset_host , 蝉游记网站上的js和css等静态资源就很方便地迁移过来了。

除了上面提到的几个特性外,我们还使用了图片自动旋转、缩略图预生成等七牛独有的特性,而这些特性不少都是我们实际使用过程中遇到的需求,然后他们很快就实现并且上线了。总之七牛云存储提供了各种便捷的功能,如果你的应用有大量的存储或者图片处理需求,不妨试用看看了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值