各位好
最近的项目中有一个模块需要给用户提供云网盘功能。目前在做技术选型,自己实现和第三方方案都有考虑。正在了解七牛云服务。
请大家给些思路和建议,谢谢了!
1
abelyao 2015-09-07 21:41:41 +08:00 1
如果是内网的网站,建议还是放在内网吧,速度啊~
如果是对外的,文件量不多的,七牛 又拍云 这些都是首选方案 |
2
abelyao 2015-09-07 21:42:29 +08:00
哦,如果最终选了七牛或又拍云,文件下载记得使用 token 防盗链,别把流量刷光了
|
3
heww 2015-09-07 21:54:53 +08:00 via iPhone 1
数据库中添加两张表, fentry 和 fobject 。
fentry 中有个标志指示它是目录还是文件,如果是文件的话,有个指向 fobject 的外键,还有一个外键指向自己(上级目录),每个用户有一个 / 项。 fobject 在用户上传完文件后根据文件名及时父目录的 hash 值计算出自己的唯一的 hash 值,按照这个 hash 值分四级或五级目录(可以参考 squid 缓存文件时的目录)来保存用户上传的文件。 文件可以保存在本地或七牛或又拍(?)都可以。 别问我为什么要这样设计,因为我们当年也做过网盘,当时文件存在又拍,然后又拍只支持三级目录,我能的网盘要支持无限级目录,就这样。 |
4
abelyao 2015-09-07 22:28:56 +08:00
|
5
chzyer 2015-09-07 22:36:23 +08:00 1
量小的话其实 mongo 的 gridfs 差不多够用了,不过就是文件内容要编辑比较麻烦。
|
7
heww 2015-09-07 23:27:20 +08:00 via iPhone
@abelyao 我们做那个网盘功能时,七牛的名气还不够大,又拍还没有多个文件打包压缩下载功能(不知道现在有了没,反正当时给他们提建议时,他们客服说快了下个月就有这个功能,嗯,结果下个月我们没有等到这个功能),应该是 2012 年年中那会儿吧。
|
8
abelyao 2015-09-08 00:38:28 +08:00
@heww
我贴这个链接没有任何恶意,只是我觉得 “多级目录” 对一个云存储来说是一个影响很大的功能,如果连这个都不支持真的就废了。所以测试了一下,并且告知你、告知楼主,目前是支持的了,也避免耽误楼主的判断和开发。 另外,打包下载目前看了一下又拍云的开发文档… 仍然没提到。 以前用又拍云的时候,说了好多次不要区分图片和其它文件的空间功能,说了好久好久,终于才在最近实现了。这些服务商有时承诺一个功能,真的不能太期待。 |
9
neoblackcap 2015-09-08 00:45:40 +08:00
其实文件存储感觉问题倒不大,主要是你们的带宽能撑住?
若是没有大的独立带宽,请使用第三方存储服务供应商,至少他们有 CDN ,有成熟的存储方案。用他们肯定会比很多自建的好。 若是你们已经到达了七牛,又拍云无法满足的程度。那么就上自建, YY 就是这样,实时直播,没办法了。 |