毕业设计项目介绍:面向海量小文件数据存储平台
【视频展示】
https://www.acfun.cn/v/ac34161173?shareUid=65252877
【介绍】
面向海量小文件的存储平台,直白就是网盘,但是对于小文件更多地是非结构化的,怎么有组织地存储,必须借助“分布式存储架构”,利用了开箱即用而且小巧易搭建的MinIO系统。
【前端技术】
基本没有人问的;
1、账号(登录)
2、RESTful 的增删改查接口
3、文件目录树
【后端技术】
(配置)
1、搭建分布式MinIO系统
本地电脑开启5台虚拟机(其中4台作为存储结点,1台作为服务器)
基本理论是:4台存储结点,除非破坏是一半以上,不然还可以根据Reed-Solomon代码,将存储结点分为n/2的数据块,n/2奇偶校验块
MinIO有一定的容灾能力:纠错(字节腐蚀)、数据恢复、数据加密。
2、Nginx
其中Server结点配置Nginx,负载均衡,反向代理,缓存机制。
(编码)
3、Tire树
利用字典树算法,加快检索文件速度。
原理是:文件会通过hash成唯一识别码,而这识别码由字符串组成,字典树只要从根结点遍历整个识别码即可找到对应的存储点位置。无需通过mysql查询。
4、RabbitMQ
利用消息队列,将用户上传文件解耦成消息队列,然后利用空闲时间利用多线程实现获取消息头来上传到云端。
6、多线程
利用go语言的协程,来实现多协程。
3、Redis断点续传
https://www.cnblogs.com/mrmirror/p/13583715.html
维护一个replication,分master 和 slave 结点,其中内存中的master 里面有一个backlog,两者都有replication offset 和 run id ,每当网络出现中断时,slave就会问master 的 backlog的offset,如果也没有,则需要resynchronization(重新同步)。
(半自动代码 + API)
7、后台管理gin-vue-admin
https://www.gin-vue-admin.com/
半自动代码,开箱即用的后台管理网页端。实时监控API,以及
8、阿里云的云存储(数据容灾 + 数据恢复)
公有云,主要是为了容灾。也可以通过公有云来提供下载地址,这样更加安全。
9、腾讯云的内容检测
利用腾讯云的API,可以支持,图片,文本,视频,音频的内容检测,其中内容检测主要是做评估,如果评估指数比较高,则放到后台带观察,如果发现在平台中涉及违法文件,则会相应进行查封。禁止文件传播。