文件存储方案

2015-09-07 21:27:17 +08:00
 timepast

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

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

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

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

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

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

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

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

以前用又拍云的时候,说了好多次不要区分图片和其它文件的空间功能,说了好久好久,终于才在最近实现了。这些服务商有时承诺一个功能,真的不能太期待。
neoblackcap
2015-09-08 00:45:40 +08:00
其实文件存储感觉问题倒不大,主要是你们的带宽能撑住?
若是没有大的独立带宽,请使用第三方存储服务供应商,至少他们有 CDN ,有成熟的存储方案。用他们肯定会比很多自建的好。
若是你们已经到达了七牛,又拍云无法满足的程度。那么就上自建, YY 就是这样,实时直播,没办法了。

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

https://www.v2ex.com/t/218956

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

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

© 2021 V2EX