代码改变世界

图片存储那些事

2013-09-26 09:21  Virus-BeautyCode  阅读(...)  评论(...编辑  收藏

图片存储那些事

 

1、二进制列

 

很多关系数据库都支持二进制类型的列,可以把图片转换成二进制,然后存放起来。

 

2、文件路径

 

把图片的相对路径,一般是相对网站根目录的路径存在数据库中,把文件存在在本地文件系统。

 

3、图片服务器

 

单独的服务器用来存放图片,单独的域名空间,使用某些特殊的文件系统。

图片有很多类型,小图片,大图片,有些图片是有关联系,通常一起使用,有的是产品图,有的是系统图片,有的是用户上传的,有的是平台管理的。

针对不同类型的图片,需要不同的文件系统,有些文件因为显示的时候都是一起显示的,可能需要存放在一起,减少寻道时间,加快IO速度,提高读取效率。

 

4、分布式,路径无关

 

MongoDB GridFS

 

001001001

产品图片

 

图片越来越多,请求越来越多,提高可用性,提高并行执行,会需要分布式文件系统,实现分布式图片服务,而且图片服务对外应该是存储无关的,路径无关。

外界只是需要存储图片,图片的类型,大小,图片之间的关联,使用频率,是否需要生成缩略图等等业务相关的需求。

图片服务负责具体的存储,存储的类型,位置,路径,返回外界一个唯一的编号就可以了。

当然编号可以设计成有含义的,3位一个含义,比如说:所属子系统,所属类型,相关性,权限,是否允许外链等等。