CMS如何管理和存储海量图片?

 

图片管理的应用很常见,类似的在线相册、作品集、在线图库、医学图库、以及在线展览,都是图片的存储和运用,图书馆、文化馆、展览馆、高校、中小学等单位应用的比较多,所以,我们之前就有一篇文章讲《如何基于开源系统构建图库/图片管理系统》,有兴趣可以看看。

那么,如何管理海量图片、大量图片呢? 会不会遇到存储问题、性能问题、搜索问题?本文就目前我们对图片的处理和架构,做一个分析,仅供参考。

 

CMS存储和管理图片

 

我们通过CMS来管理图片,所以,通常情况下,每上传一张图片,都要建立一条数据库记录,在Drupal里面叫Media类型。

用CMS表来存储图片,这种做法好处:

1、图片有详细的数据信息,比如加标签、说明、分类等信息。

2、图片有引用信息,被其他类型应用,被文章引用,会标记,也就是没有被引用的图片可以被删掉。

这样做缺点就是所有图片都会存数据库,因此图片越多,会带来数据库本身的压力,这个算是缺点。

当然,总体来讲,还是利大于弊,不可能所有图片类似文件的存储,那样没有管理,没有说明,没有索引,那就是百度云盘了,跟图片管理系统或者说CMS没一毛钱关系了。

 

 

海量图片存储的三要素

 

那么在海量图片存储中,需要注意哪些呢?首先,要保持文件系统的性能,所以要分文件夹,可以按日期。其次,保持数据库的表大小,可以进行集群或者分表。最后,就是如何搜索和查找图片,这时候可以通过专业的搜索引擎工具,比如Solr和Elastic Search,与CMS集成,即可实现信息的索引。

所以,关键三要素的解决方案和架构图如下:

1. 图片存储:按日期份文件夹、物理存储对接OSS存到云服务。

2. 数据表存储:分表或者做Drupal单例集群。

3. 搜索和交互:通过索引工具去索引和检索。

架构可以参考上图,最终的操作都是直接跟Solr交互,所以性能会非常好,内容的管理和落地都是基于CMS架构的,文件的存储都是基于云存储,所以整体的架构和性能是可以保障的。

 

下面也是我们基于Drupal构建的图片管理系统,可以分文件夹、搜索、加标签等操作,用户在使用的时候,只需要从媒体库里面选择即可。

 

 

 

最后,关于Drupal的资源图库管理系统,详情参考《如何基于开源系统构建图库/图片管理系统》。

 

详细的方案介绍,可以参考我们的《非遗数据库方案介绍

更多技术资料,可以参考我们之前相关介绍文章,如果需要建设相关数据库,以及Drupal灵活的元数据/检索/可视化构建演示或者资料,可以联系我们。

 

1、如何用开源的系统来构建知识库平台?

2、如何基于开源系统构建资料库/文档库平台

3、如何建设在线展览和多媒体展览?

4、CMS如何存储和管理大量图片/海量图片?

5、CMS如何做视频管理?

6、文档资源库建设之搜索引擎如何搜索文件的内容(pdf/wrod)?

7、如何用开源的Drupal来构建视频教学平台?

8、CMS的如何实现审核发布机制?

9、Headless CMS:以API为输出的内容系统的构建

10、开源的CMS如何实现问卷调研?