公司现在部署一个内部使用 Web 形式的 CMS 系统,有附件的需求,现在基于 Flask 框架开发。
- 系统规模:预计每个月会产生 2k 左右的文件,包括图片、 office 文档、压缩文件、日志等
- 系统要求:维护简单,不要经常去备份文件,不能随着文件的增长速度变慢
- 文档操作:文件上传,下载(图片直接浏览),文件内容不更新,文件删除
- 文件重要性:重要性一般,文件丢失也不要紧。
- 文件大小:几十 k~16M (最大)
经过尝试,有下面两个技术方案可行
方案一:直接存放在 linux 的文件夹下,按照月份分割
方案优点:简单,不依赖其他数据库
方案缺点:文件规模大,系统会变慢,数据管理困难
方案二:使用 mongoDB
方案有点:这个不必陈述,很多
方案缺点:基本没有
使用 mongodb 有一个疑问,是使用二进制格式存储文件,还是使用 Gridfs 存储文件。
有没有其他更合适的方案,请多多指点