请教高手:公司内网基于 Flask 做的 CMS 系统,对于上传文件的管理,使用什么方案比较好

2016 年 6 月 30 日
 Stitch

公司现在部署一个内部使用 Web 形式的 CMS 系统,有附件的需求,现在基于 Flask 框架开发。

经过尝试,有下面两个技术方案可行

方案一:直接存放在 linux 的文件夹下,按照月份分割

   方案优点:简单,不依赖其他数据库
   方案缺点:文件规模大,系统会变慢,数据管理困难

方案二:使用 mongoDB

  方案有点:这个不必陈述,很多
  方案缺点:基本没有

使用 mongodb 有一个疑问,是使用二进制格式存储文件,还是使用 Gridfs 存储文件。

有没有其他更合适的方案,请多多指点

6658 次点击
所在节点    Python
15 条回复
tomz
2016 年 6 月 30 日
我是外行。随便说说。 cms 不能用 flask 吧,起码用 django 。 cms 有现成的开源方案吧,不用自己实现。有 plone 和不维护了的 zope2.还有 java 的方案。以及付费的广州易度的方案。
tomz
2016 年 6 月 30 日
内网用 zope 这样的耗费资源的方案就行。
realpg
2016 年 6 月 30 日
内网啊 这年头电脑这么便宜 尤其是存储根本不吃 CPU 内存就吃稳定的文件系统

弄个小破文件服务器, SOFTRAID 1 就行 然后每组再配一个淘汰 PC 用来 rsync 做灾难应急备份,破 PC 就行
然后用 NFS 挂载到 webserver 上,直接按照年月日处理目录就行

如果时间长了比如 2026 年容量不太够了 再弄一组 把 2016 2017 2018 挂这个 NFS , 2026 2027 啥的挂另外一个

读取操作直接访问 NFS 机器自带静态 webserver 写操作通过 python webserver 往上面传

勤盯着 RAID 健康度就行了
eric6356
2016 年 6 月 30 日
不是大文件的话,就不用 Gridfs 了。
haozhang
2016 年 6 月 30 日
我觉得你这玩意像是一个文件网盘,你买个 nas 就完了啊
qqmishi
2016 年 6 月 30 日
内网搭个直链网盘, CMS 直接链接过去就好了吧
tvallday
2016 年 6 月 30 日
为什么要把简单问题复杂化?时间太多了?
Stitch
2016 年 6 月 30 日
@eric6356
这些图片、文档什么的,使用 mongodb 的 Gridfs 有没有什么坏处?
ibigbug
2016 年 6 月 30 日
我们这边直接用 OSS 了。
9hills
2016 年 6 月 30 日
这个需求,放硬盘,定期 rsync 妥妥的,没必要复杂
dawncold
2016 年 6 月 30 日
没必要复杂
Yanickkk
2016 年 6 月 30 日
mongoDB 这个缺点就没有? 这种文件还不如存服务器,用数据库真没啥意义。单独挂个硬盘,不够继续上新盘
eric6356
2016 年 6 月 30 日
@Stitch 相对而言性能会差吧。 Gridfs 会分 chunk 存储文件,会有不必要的查询。
xsseroot
2016 年 6 月 30 日
mongoDB 数据库坏了,看你的文件怎么找回~
ila
2016 年 6 月 30 日
同步不高大上, flask 更有成就感→_→

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/289277

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX