请教高手:公司内网基于 Flask 做的 CMS 系统,对于上传文件的管理,使用什么方案比较好 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Stitch
V2EX    Python

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

  •  
  •   Stitch 2016-06-30 10:47:04 +08:00 6425 次点击
    这是一个创建于 3393 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    • 系统规模:预计每个月会产生 2k 左右的文件,包括图片、 office 文档、压缩文件、日志等
    • 系统要求:维护简单,不要经常去备份文件,不能随着文件的增长速度变慢
    • 文档操作:文件上传,下载(图片直接浏览),文件内容不更新,文件删除
    • 文件重要性:重要性一般,文件丢失也不要紧。
    • 文件大小:几十 k~16M (最大)

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

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

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

    方案二:使用 mongoDB

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

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

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

    15 条回复    2016-06-30 22:20:44 +08:00
    tomz
        1
    tomz  
       2016-06-30 10:58:52 +08:00
    我是外行。随便说说。 cms 不能用 flask 吧,起码用 django 。 cms 有现成的开源方案吧,不用自己实现。有 plone 和不维护了的 zope2.还有 java 的方案。以及付费的广州易度的方案。
    tomz
        2
    tomz  
       2016-06-30 10:59:43 +08:00
    内网用 zope 这样的耗费资源的方案就行。
    realpg
        3
    realpg  
    PRO
       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
        4
    eric6356  
       2016-06-30 11:08:52 +08:00
    不是大文件的话,就不用 Gridfs 了。
    haozhang
        5
    haozhang  
       2016-06-30 11:49:48 +08:00 via iPhone
    我觉得你这玩意像是一个文件网盘,你买个 nas 就完了啊
    qqmishi
        6
    qqmishi  
       2016-06-30 12:03:54 +08:00
    内网搭个直链网盘, CMS 直接链接过去就好了吧
    tvallday
        7
    tvallday  
       2016-06-30 12:05:49 +08:00 via iPhone
    为什么要把简单问题复杂化?时间太多了?
    Stitch
        8
    Stitch  
    OP
       2016-06-30 12:08:31 +08:00
    @eric6356
    这些图片、文档什么的,使用 mongodb 的 Gridfs 有没有什么坏处?
    ibigbug
        9
    ibigbug  
       2016-06-30 12:30:03 +08:00
    我们这边直接用 OSS 了。
    9hills
        10
    9hills  
       2016-06-30 12:31:42 +08:00 via iPhone
    这个需求,放硬盘,定期 rsync 妥妥的,没必要复杂
    dawncold
        11
    dawncold  
       2016-06-30 12:32:53 +08:00
    没必要复杂
    yannxia
        12
    yannxia  
       2016-06-30 12:37:09 +08:00
    mongoDB 这个缺点就没有? 这种文件还不如存服务器,用数据库真没啥意义。单独挂个硬盘,不够继续上新盘
    eric6356
        13
    eric6356  
       2016-06-30 16:25:57 +08:00
    @Stitch 相对而言性能会差吧。 Gridfs 会分 chunk 存储文件,会有不必要的查询。
    xsseroot
        14
    xsseroot  
       2016-06-30 17:18:30 +08:00
    mongoDB 数据库坏了,看你的文件怎么找回~
    ila
        15
    ila  
       2016-06-30 22:20:44 +08:00 via Android
    同步不高大上, flask 更有成就感→_→
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1040 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:35 PVG 02:35 LAX 11:35 JFK 14:35
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86