总体思路:
minio对于大于5M的文件自动分片上传,但分片上传接口未提供,解决办法为重写 MinioClient的uploadPart和completeMultipartUpload 方法。
1. 前端计算文件MD5并对文件进行分片。
2. 后端生成uploadId,调用uploadPart方法上传分片并保存分片的etga数据到数据库。
3. 分片上传完成后根据uploadId查询所有分片的etga数据,并根据etga数据调用completeMultipartUpload方法合并分片。
流程如下
目前只做了大致流程,代码未优化,后续再优化。
优化方向如下:
1.使用redis做分片缓存,mysql只做md5校验。
2. 形成独立jar包可供第三方使用
2.编写前端对应的分片上传组件,方便调用。
项目地址如下地址如下 https://gitee.com/liyorange/upload-demo.git