V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
pennai
V2EX  ›  程序员

自建网盘文件存储用 POSIX 文件系统还是 MongoDB 还是 minio 等 OSS?

  •  
  •   pennai · 2022-03-13 23:16:02 +08:00 · 2188 次点击
    这是一个创建于 1020 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在尝试自己写一个网盘,了解到文件存储大概可以有三种方式
    1.直接存在 POSIX 等文件系统里
    2.MongoDB 的 GridFS
    3.minio 等 OSS
    想请问以上三种有什么优劣?在多用户、文件数少时,哪个会比较省心便捷?另外有一个功能需求是需要在目录 /文件变动时自动增量同步,如果是 POSIX 了解到 inotify+rsync 可以实现,另外两种是否有相似的办法呢?
    感谢解答

    11 条回复    2022-03-14 23:39:03 +08:00
    documentzhangx66
        1
    documentzhangx66  
       2022-03-13 23:41:19 +08:00
    最方便 + 省心的当然是直接存到 MongoDB ,不是 MongoDB GridFS ,而是直接存到 MongoDB 的 Table 里。原因:

    1.MongoDB 后期扩容是所有数据库里最无脑最方便的。无论是扩带宽还是扩存储,直接加节点,跑个加节点的脚本就好。

    2.把文件存到 MongoDB 里,直接用数据库方法去进行批量管理,很方便。

    劣势:性能一般,存储文件需要切片,会浪费一定空间。
    mengyx
        2
    mengyx  
       2022-03-14 10:17:05 +08:00 via Android
    minio 会好一点吧,能够同时兼容各个云厂商的对象储存服务
    libook
        3
    libook  
       2022-03-14 11:51:57 +08:00
    看你用户规模多大,规模越大越建议使用大厂踩过坑的方案。

    如果只是家庭使用,就用一些 NAS 系统提供的方案就好了,大多是 POSIX 文件系统一把梭,安装配置和维护都比较方便。
    pennai
        4
    pennai  
    OP
       2022-03-14 12:09:11 +08:00
    @documentzhangx66 MongoDB 里有像 inotify 这样云端变动之后通知用户(或设钩子)的机制吗?
    @mengyx 网上搜了圈好像没看到 minio 有云端文件变动事件通知的机制
    pennai
        5
    pennai  
    OP
       2022-03-14 12:10:21 +08:00
    @libook 是打算写一个多用户的,类似百度网盘这种而非私有云,NAS 似乎满足不了?
    libook
        6
    libook  
       2022-03-14 12:37:14 +08:00
    @pennai #5 主流商业和开源 NAS 系统都是有多用户机制的,不过适合用户数量较少的情况,比如几百个。像群晖这种商业系统甚至把文件共享和公开分享的功能都做出来了。

    像 SMB 、FTP 等主流文件传输协议是支持多用户的,SSHFS 、NFS 之类的传输协议是直接复用了 POSIX 文件系统本身的权限机制。

    如果你要做安全机制的话,还要看是复用底层系统的安全机制还是自己重新做一套。

    所以还是得看你想做什么规模的产品。
    pennai
        7
    pennai  
    OP
       2022-03-14 13:38:42 +08:00
    @libook 感谢,我去了解一些开源的 NAS
    L1shen
        8
    L1shen  
       2022-03-14 14:42:35 +08:00
    documentzhangx66
        9
    documentzhangx66  
       2022-03-14 14:51:54 +08:00
    @pennai MongoDB 是通用型数据库,与 inotify 不是同一种东西,所以没有这种机制。但你可以自己写代码,添加更多机制。MongoDB 更灵活,开发、管理、维护都更方便,但牺牲性能。
    pennai
        10
    pennai  
    OP
       2022-03-14 20:46:23 +08:00
    @L1shen 感谢
    jones2000
        11
    jones2000  
       2022-03-14 23:39:03 +08:00
    MongoDB 扩展方便。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2707 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:49 · PVG 13:49 · LAX 21:49 · JFK 00:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.