功能模块:
- 文件上传:支持本地图片/视频/文件上传,拖拽上传,粘贴上传等
- 秒传检测:对重复文件进行秒传检测,避免重复上传相同文件
- 断点续传:上传失败时,支持继续未完成的上传,而不是重新上传整个文件
- 文件管理:文件列表,文件删除,文件预览等操作
- 分片上传:对超大文件进行分片上传,合并成完整文件
- 文件加密:文件上传后,对文件内容进行加密保存
- CDN闪存:将上传文件部署到CDN加速,并生成访问链接
技术方案:
- 前端使用Vue开发,Axios完成文件上传接口调用
- 后端使用Spring Boot框架,使用MultipartFile接收前端上传文件
- 使用MD5算法生成文件签名,进行秒传检测
- 利用redis缓存未完成的上传文件信息,断点续传
- 对大文件进行分片,每个分片上传后保存分片信息,合并时按序读取分片组成文件
- 使用AES对称加密算法加密文件内容,安全保存文件
- 文件部署到OSS对象存储,OSS链接返回给前端,前端通过CDN访问
难点:
1. 秒传检测:如何通过文件MD5签名进行重复文件检测,避免重复上传
2. 断点续传:如何持久化记录