图片存储从数据库中改为磁盘存储 - moyuanming/NWeight GitHub Wiki

一、 服务器端

1. 目录说明

  • 存储在IMAGE/Upload
  • 以时间20130826为第一分组,一天一个文件夹
  • 时间文件夹下以每个车道号为名称的文件夹存储这个车道的图片
  • 目录结构即:IMAGE/Upload/20130826/X01/XXXXX.IMG

2. 图片维护程序

  • 图片维护程序主要作用是创建日期和车道名称的文件夹,防止车道上传图片时找不到路径,图片维护程序每次创建比当前日期超出10天的文件夹。
  • 图片维护程序还负责删除过期图片和文件夹,过期天数由配置文件设置。
  • 图片维护程序还负责维护IMAGE表中的记录,图片删除后删除IMAGE表中的记录,保持IMAGE表的记录数,提高图片查询的速度。

3. 图片扫描入库程序停用

  • 不在启用图片扫描入库程序。``

二、 图片查询

  • 图片查询还是查询IMAGE表,IMAGE表中记录图片的字段现在记录图片文件名,图片查询到记录后根据记录拼接出图片的Ftp路径,根据ftp路径从服务器ftp地址上获取图片并显示。

三、 车道

1. 添加IMAGE消息

  • 车道添加IMAGE消息,消息记录直接入库到IMAGE表中,其中包含图片名称。

2. 图片生成与上传

图片生成模式保持不变,只是上传的时候拼接上传路径,直接上传到服务器存储路径,不在单独处理

四、 改成磁盘存储的想法

1. 减小数据库体积和服务器压力

  • 原有的方式图片存到数据库中步骤太多,扫描图片入库,不知道是不是这个原因导致数据库服务占用太多系统资源。
  • 数据库文件体积太大是不是也会导致数据库服务占用太多系统资源。
  • 当数据库文件太大,即使删除数据库中图片记录数据库也不会释放磁盘空间,导致当数据库文件把磁盘占满后无法释放磁盘空间,这个问题除了删除整个图片表或文件暂时没有找到解决办法。

2. 可能带来的优点

  • 减少图片处理步骤,基本上服务器不需要再处理图片,车道直接把图片存储到目的地。
  • 减小数据库体积。
  • 容易删除图片释放磁盘空间。

3. 可能带来的缺点

  • 存储图片的目录无法打开(文件过多)。
  • 图片查询通过ftp获取图片速度和认证是否容易出问题。
  • 存储在磁盘的图片是否删除存在困难,文件太多删除一样会很慢,释放空间很慢。

鉴于以上想法,添加一套存储在本地磁盘的使用方案可以尝试一下。如果应用效果好以后都采用这种方式。