目录
一、前言
由于项目需求,会存储大量的非结构化文件,因此对非结构化文件管理是值得思考的问题。结合自身参入项目的方案设计思路,针对“如何管理非结构化文件”,有如下的思考:
(1)、文件上传的方式有哪些?
(2)、完整的文件如何去存储?方便后续的下载、预览等
(3)、文件附属管理信息如何获取?如文件大小、类型、名称、总页数等等
(4)、如何定位到文件具体哪页?如由关键字搜索到属于文件哪一页并且相关数据要输出
(5)、一份文件中有文字、图片、表格等元素信息,如何提取?
(6)、现存在很多类型的文件,哪些类型文件能够解析?
二、问题思考思路
针对上面各个问题,本人基于自身掌握的技术栈提出自己的解决方案。
文件的上传方式?
目前我们常见的文件上传方式:网络url方式下载后存储到本系统服务、前端页面导入方式上传;
完整文件如何存储?
文件存储的目的,是方便进行下载、预览等。因此,这里采用mongodb来存储。当文件小于16MB时,采用BSON方式存储;当文件大于16MB时,采用GridFS。
文件附属管理信息如何获取?
基于用户角度,文件附属信息如文件大小、类型、名称、总页数等等是常见要知道的。对于这些信息,可以借助一些组件来解析文件获取到。
如poi-scratchpad读取PPT、DOC、Visio;poi读取Excel的XLS;poi-ooxml读取Excel的X