【源码学习】基于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 

【源码学习】基于Netty的大文件断点续传开源解决方案

2.左上角的圆角加号可以创建根目录 

【源码学习】基于Netty的大文件断点续传开源解决方案

3.每个目录右边的加号可以创建该目录的子目录

4.点击目录,可以显示该目录下已经上传成功的文件

【源码学习】基于Netty的大文件断点续传开源解决方案

5.点击文件上传按钮,弹窗显示本机系统的目录和文件架构

【源码学习】基于Netty的大文件断点续传开源解决方案

6.选中某个文件,点击下方确定按钮即可对该文件进行分块传输,同时支持多文件上传(当然了这是要看服务器和本机性能配置是否给力)

【源码学习】基于Netty的大文件断点续传开源解决方案

7.上传中心支持断点续传,即点击暂停,暂停后可点击继续或取消上传

【源码学习】基于Netty的大文件断点续传开源解决方案

8.文件上传成功后会刷新文件列表

9.文件列表的每个文件的下载按钮会弹出选择要下载到本机指定目录。选中目录后,点击下方确定按钮,即可进入下载中心进行文件的下载。

【源码学习】基于Netty的大文件断点续传开源解决方案

10.下载中心跟上传中心一样,支持断点续传 

【源码学习】基于Netty的大文件断点续传开源解决方案

如果你想了解更多有关该项目的技术实现细节,就点击后面的链接前往项目主页看看吧:https://gitee.com/gaojunjie03/fileex