后台做一个虚拟的文件管理,文件内容应该存放在数据库还是本地磁盘 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ninomi
V2EX    问与答

后台做一个虚拟的文件管理,文件内容应该存放在数据库还是本地磁盘

  • nbsp;
  •   ninomi 2018-09-04 11:29:54 +08:00 2755 次点击
    这是一个创建于 2595 天前的主题,其中的信息可能已经有所发展或是发生改变。

    要做一个文档的管理,包括各级目录以及文件,目录结构这些信息都是存在数据库里面的,本地并不存在真实对应的文件夹。通过富文本新建文件,有个疑问是文件是转成二进制存放到数据库中,还是存放在本地磁盘,数据库里之存放对应的文件路径用来访问。 考虑到放在数据库中便于管理,但是总感觉数据库里面放文件内容不大好。可是放在本地就难免发生本地文件按勿删可是数据库中获取的文件列表信息还在的问题。 请教一下大家都是怎么解决的,谢谢

    18 条回复    2018-09-04 23:39:01 +08:00
    lieh222
        1
    lieh222  
       2018-09-04 14:23:54 +08:00
    tar...233333333333333
    loading
        2
    loading  
       2018-09-04 14:31:59 +08:00 via iPhone
    文件系统
    ninomi
        3
    ninomi  
    OP
       2018-09-04 15:01:01 +08:00
    @loading 没有文件系统,只是一个小功能,暂时不考虑单独给它做一个文件系统
    SuperMild
        4
    SuperMild  
       2018-09-04 15:03:44 +08:00
    存本地磁盘,用 UID 做文件名,用特殊后缀名,一般人见到这样的文件就不会去动了。
    undeflife
        5
    undeflife  
       2018-09-04 15:11:11 +08:00
    为什么文件放磁盘就难免被误删? 这么随意的么...
    qiyuey
        6
    qiyuey  
       2018-09-04 15:28:24 +08:00 via Android   1
    OSS 或者 NAS
    ninomi
      &bsp; 7
    ninomi  
    OP
       2018-09-04 15:30:44 +08:00
    @undeflife 因为有过做项目迁移的时候把只迁移了数据库,磁盘的内容忘记了,导致文档没有办法读取的情况
    ninomi
        8
    ninomi  
    OP
       2018-09-04 15:35:43 +08:00
    @SuperMild 嗯,大家说的都是文件单独存放,看来把文件存到数据库是确实是不大好的
    SuperMild
        9
    SuperMild  
       2018-09-04 15:45:06 +08:00
    @ninomi 如果单个文件不会很大,文件数量不会很多,我觉得放数据库也行。刚开始肯定没有效率问题,到后面文件多了,到时再想要不要把文件导出来也不迟,反正导出来也不麻烦。

    另外,不管怎么存,注意备份。
    msg7086
        10
    msg7086  
       2018-09-04 16:00:30 +08:00   1
    @ninomi #3
    你需要了解一下「文件系统」这个词是什么意思。

    回到主题。
    放哪都一样,一个小功能而已。
    我手里几十万个 bt 种子全放数据库也没什么问题,几十 G 的表,又不大。
    play78
        11
    play78  
       2018-09-04 16:13:36 +08:00
    这个要看文件的大小吧。
    如果是那种 10KB 左右的小文件,那么存放在数据库反而更好,一次查询就完成数据读取。
    可以存放在 nosql 里面。mongodb 之类的。
    如果文件很大,那么肯定是存放在文件系统里面。
    如果文件很多并且很重要,那么用第三方的云存储也是可以的。

    比如用户头像,就可以直接存放在数据库就可以。
    ninomi
        12
    ninomi  
    OP
       2018-09-04 16:45:22 +08:00
    @msg7086 我理解的文件系统就是文件统一单独管理的项目,自己弄一个 FTP 或者其它第三方的文件管理
    moln
        13
    moln  
       2018-09-04 16:48:03 +08:00
    @msg7086 求分享种子
    learnshare
        14
    learnshare &bsp;
       2018-09-04 17:04:24 +08:00
    文件肯定要存硬盘,数据结构可以存数据库的
    msg7086
        15
    msg7086  
       2018-09-04 17:15:38 +08:00
    @ninomi 所以他说的不是你理解的文件系统,而是公认的文件系统。
    loading
        16
    loading  
       2018-09-04 20:15:03 +08:00 via iPhone   1
    额,我重新回答一下吧……

    就是直接放"本地磁盘"。这样更直接,出问题也好回复,硬盘硬件有问题也能很容易救回一部分数据。

    而且这个文件大小真的会比你想象中要大。
    jpmorn
        17
    jpmorn  
       2018-09-04 23:07:42 +08:00
    对象存储
    msg7086
        18
    msg7086  
       2018-09-04 23:39:01 +08:00   1
    补充一句,文件系统也是一个数据库。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5834 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 01:51 PVG 09:51 LAX 18:51 JFK 21:51
    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