43

Zimg:轻量级图片服务器搭建利器

 5 years ago
source link: https://mp.weixin.qq.com/s/O4qNmeIEYIryIzSEPxspaQ?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Ij6BnqZ.jpg!web

在一个互联网应用中,图片扮演着越来越重要的角色。有稳定的可扩展的图片存储服务器就显得尤为的重要,云厂商们提供了便利的图片存储服务,花钱就可以解决了。这里简单介绍一个开源的一个分布式图片存储服务器——zimg,来自己搭建一个图片服务器。

当然你也可以利用分布式文件存储系统在存储图片,比如FastDFS,不过针对图片的特有功能,比如缩放、截取、倾斜等,都需要自己特殊处理,而这正是图片服务器zimg所擅长的东西。

官网地址:http://zimg.buaa.us

服务器的安装、配置、使用手册等,官网都有详细的介绍,可以直接查看官网,很详尽,有问题也可以在github上提出issue,共同维护解决。

j2YZVbi.jpg!web

安装成功后,打开测试页面

qeauyqy.jpg!web

上传图片后成功后页面

图片存储时,会生成图片对应的MD5值来作为寻址的唯一标识,图片重复存储时,在zimg中只会存储一份,从而有效减少相同图片的存储。但理论上有一个弊端,一个图片删除后,所有引用的地方都会清除掉。

下面罗列zimg可以提供的常见功能:

  1. 所有图片默认返回质量为75%,JPEG格式的压缩图片,这样肉眼无法识辨,但是体积减小

  2. 获取宽度为x,被等比例缩放的图片

  3. 获取旋转后的图片

  4. 获取指定区域固定大小的图片

  5. 获取特定尺寸的图片,由于与原图比例不同,尽可能展示最多的图片内容,缩放之后多余的部分需要裁掉

  6. 获取特定尺寸的图片,要展示图片所有内容,因此图片会被拉伸到新的比例而变形

  7. 获取特定尺寸的图片,但是不需要缩放,只用展示图片核心内容即可

  8. 获取按指定百分比缩放的图片

  9. 获取指定压缩比的图片

  10. 获取去除颜色的图片

  11. 获取指定格式的图片

  12. 获取图片信息

  13. 删除指定图片

而以上这些功能的提供,仅需要一个url+特定的参数,通过get方式就可以完成,这才是简便之处。

zimg提供三种存储方式:本地磁盘,beansdb,ssdb三种。单机存储,依据其目录结构设计,可以存储1024 * 1024 * 1024 * 200KB = 200TB(单图200KB大小)数据量,切换成beansdb或ssdb,后续可扩展成更大容量的存储完全不是问题。

扩展阅读:

7NNjUrr.jpg!web

长按2秒,识别二维码,关注我。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK