普通文件上传和大文件分片上传
前端(客户端)需要根据固定大小对文件进行分片,请求后端(服务端)时要带上分片序号和大小。
服务端创建conf文件用来记录分块位置,conf文件长度为总分片数,每上传一个分块即向conf文件中写入一个127,那么没上传的位置就是默认的0,已上传的就是Byte.MAX_VALUE 127(这步是实现断点续传和秒传的核心步骤)
流程图如下:
前端实现
可以使用下面2种,任意一种:
vue-simple-uploader
webuploader
后端实现
分片存储在minio中,最后使用composeObject方法,对多个分片文件,进行merge
哪些分片上传成功了,使用RandomAccessFile,写入到tempFile中,最后检查tempFile即可
秒传
什么是秒传
通俗的说,你把要上传的东西上传,服务器会先做MD5校验。
如果服务器上有一样的东西,它就直接给你个新地址,其实你下载的都是服务器上的同一个文件,想要不秒传,其实只要让MD5改变,就是对文件本身做一下修改(改名字不行),例如一个文本文件,你多加几个字,MD5就变了,就不会秒传了。