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

2016-06-30 10:47:04 +08:00
 Stitch

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

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

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

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

方案二:使用 mongoDB

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

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

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

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

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

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

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

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

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

https://www.fyfyfm.apispeedy.workers.dev/t/289277

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

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

© 2021 V2EX