V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
timepast
V2EX  ›  云计算

文件存储方案

  •  
  •   timepast · 2015-09-07 21:27:17 +08:00 · 3691 次点击
    这是一个创建于 3365 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位好
    最近的项目中有一个模块需要给用户提供云网盘功能。目前在做技术选型,自己实现和第三方方案都有考虑。正在了解七牛云服务。
    请大家给些思路和建议,谢谢了!

    9 条回复    2015-09-08 00:45:40 +08:00
    abelyao
        1
    abelyao  
       2015-09-07 21:41:41 +08:00   ❤️ 1
    如果是内网的网站,建议还是放在内网吧,速度啊~
    如果是对外的,文件量不多的,七牛 又拍云 这些都是首选方案
    abelyao
        2
    abelyao  
       2015-09-07 21:42:29 +08:00
    哦,如果最终选了七牛或又拍云,文件下载记得使用 token 防盗链,别把流量刷光了
    heww
        3
    heww  
       2015-09-07 21:54:53 +08:00 via iPhone   ❤️ 1
    数据库中添加两张表, fentry 和 fobject 。

    fentry 中有个标志指示它是目录还是文件,如果是文件的话,有个指向 fobject 的外键,还有一个外键指向自己(上级目录),每个用户有一个 / 项。

    fobject 在用户上传完文件后根据文件名及时父目录的 hash 值计算出自己的唯一的 hash 值,按照这个 hash 值分四级或五级目录(可以参考 squid 缓存文件时的目录)来保存用户上传的文件。

    文件可以保存在本地或七牛或又拍(?)都可以。

    别问我为什么要这样设计,因为我们当年也做过网盘,当时文件存在又拍,然后又拍只支持三级目录,我能的网盘要支持无限级目录,就这样。
    chzyer
        5
    chzyer  
       2015-09-07 22:36:23 +08:00   ❤️ 1
    量小的话其实 mongo 的 gridfs 差不多够用了,不过就是文件内容要编辑比较麻烦。
    timepast
        6
    timepast  
    OP
       2015-09-07 22:46:20 +08:00
    @abelyao 谢谢 , 外网环境
    @heww 谢谢 , 会参考的
    @chzyer 谢谢 , 要考虑到之后量大的情况啊
    heww
        7
    heww  
       2015-09-07 23:27:20 +08:00 via iPhone
    @abelyao 我们做那个网盘功能时,七牛的名气还不够大,又拍还没有多个文件打包压缩下载功能(不知道现在有了没,反正当时给他们提建议时,他们客服说快了下个月就有这个功能,嗯,结果下个月我们没有等到这个功能),应该是 2012 年年中那会儿吧。
    abelyao
        8
    abelyao  
       2015-09-08 00:38:28 +08:00
    @heww

    我贴这个链接没有任何恶意,只是我觉得 “多级目录” 对一个云存储来说是一个影响很大的功能,如果连这个都不支持真的就废了。所以测试了一下,并且告知你、告知楼主,目前是支持的了,也避免耽误楼主的判断和开发。

    另外,打包下载目前看了一下又拍云的开发文档… 仍然没提到。

    以前用又拍云的时候,说了好多次不要区分图片和其它文件的空间功能,说了好久好久,终于才在最近实现了。这些服务商有时承诺一个功能,真的不能太期待。
    neoblackcap
        9
    neoblackcap  
       2015-09-08 00:45:40 +08:00
    其实文件存储感觉问题倒不大,主要是你们的带宽能撑住?
    若是没有大的独立带宽,请使用第三方存储服务供应商,至少他们有 CDN ,有成熟的存储方案。用他们肯定会比很多自建的好。
    若是你们已经到达了七牛,又拍云无法满足的程度。那么就上自建, YY 就是这样,实时直播,没办法了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1470 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:24 · PVG 01:24 · LAX 09:24 · JFK 12:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.