文件存储方案

vps网友提供 09-07 讨论归档 9

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

本文由 vps网友提供,转载请注明出处

本文链接: https://www.vpsvsvps.com/discuss/a/1676471695667367936.html

标签:
neoblackcap
09-08

其实文件存储感觉问题倒不大,主要是你们的带宽能撑住?
若是没有大的独立带宽,请使用第三方存储服务供应商,至少他们有 CDN ,有成熟的存储方案。用他们肯定会比很多自建的好。
若是你们已经到达了七牛,又拍云无法满足的程度。那么就上自建, YY 就是这样,实时直播,没办法了。

abelyao
09-08

@heww

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

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

以前用又拍云的时候,说了好多次不要区分图片和其它文件的空间功能,说了好久好久,终于才在最近实现了。这些服务商有时承诺一个功能,真的不能太期待。

heww
09-07

@abelyao 我们做那个网盘功能时,七牛的名气还不够大,又拍还没有多个文件打包压缩下载功能(不知道现在有了没,反正当时给他们提建议时,他们客服说快了下个月就有这个功能,嗯,结果下个月我们没有等到这个功能),应该是 2012 年年中那会儿吧。

timepast
09-07

@abelyao 谢谢 , 外网环境
@heww 谢谢 , 会参考的
@chzyer 谢谢 , 要考虑到之后量大的情况啊

chzyer
09-07

量小的话其实 mongo 的 gridfs 差不多够用了,不过就是文件内容要编辑比较麻烦。

heww
09-07

数据库中添加两张表, fentry 和 fobject 。

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

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

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

别问我为什么要这样设计,因为我们当年也做过网盘,当时文件存在又拍,然后又拍只支持三级目录,我能的网盘要支持无限级目录,就这样。

abelyao
09-07

哦,如果最终选了七牛或又拍云,文件下载记得使用 token 防盗链,别把流量刷光了

abelyao
09-07

如果是内网的网站,建议还是放在内网吧,速度啊~
如果是对外的,文件量不多的,七牛 又拍云 这些都是首选方案