【源码学习】基于Netty的大文件断点续传开源解决方案
在实际应用中我们经常使用到网盘服务或公司内部的文件传输系统,用来高效的上传下载较大文件。那么这些高性能文件传输服务,都需要分块发送、断点续传功能。
今天 Gitee 推荐的这款开源项目就是基于 Netty 实现的大文件分块上传断点续传解决方案,一起来学习吧。
项目名称:fileex
项目作者:gjj
项目地址:https://gitee.com/gaojunjie03/fileex
项目简介
一款基于 netty、http1.1 transfer-encoding:chunked、websocket 实现的大文件分块上传断点续传处理器,同时具备上传/下载进度和上传/下载速度的推送功能。
项目架构
- frontend-service 简单实现的前端页面(依赖netty-client)
- netty-client netty 客户端 (依赖netty-common)
- netty-common netty 客户端服务端公共项目
- netty-server netty 服务端 (依赖netty-common)
- mongodb 提供数据服务(上传任务、下载任务、已上传完的文件数据)
使用说明
1.浏览器进入前端页面 http://localhost:8789/frontend/file
2.左上角的圆角加号可以创建根目录
3.每个目录右边的加号可以创建该目录的子目录
4.点击目录,可以显示该目录下已经上传成功的文件
5.点击文件上传按钮,弹窗显示本机系统的目录和文件架构
6.选中某个文件,点击下方确定按钮即可对该文件进行分块传输,同时支持多文件上传(当然了这是要看服务器和本机性能配置是否给力)
7.上传中心支持断点续传,即点击暂停,暂停后可点击继续或取消上传
8.文件上传成功后会刷新文件列表
9.文件列表的每个文件的下载按钮会弹出选择要下载到本机指定目录。选中目录后,点击下方确定按钮,即可进入下载中心进行文件的下载。
10.下载中心跟上传中心一样,支持断点续传
如果你想了解更多有关该项目的技术实现细节,就点击后面的链接前往项目主页看看吧:https://gitee.com/gaojunjie03/fileex