一、简化演示 分块上传、合并分块 前端将完整的视频文件分割成多份文件块,依次上传到后端,后端将其保存到文件系统。前端将文件块上传完毕后,发送合并请求,后端拿取文件块,合并后重新上传到文件系统。 断点续传 前端遍历文件块,每次上传之前,先询问文件块是否存在,只有不存在的情况下,才会上传。 秒传 前端分割视频文件前,先询问此视频是否已经存在,存在则不再上传,后端之间返回视频信息。前端看起来就像是被秒传了。 二、更详细的逻辑和细节问题 视频文件和文件块都通过文件本身计算MD5值作为唯一标志 文件系统使用Minio,只要提供buckerName和path就可以操作文件 后端合并文件块成功后会删除文件块,并以MD5值为id存入数据库 Minio存储文件块时,依据其md5值计算path,比如取前两个字符构建二级文件夹,文件名为md5值,无后缀。所以只需要提供文件块的md5值就可以操作文件块。 Minio存储完整视频文件时,依据其md5值计算path,同上,文件名为md5值,携带.mp4等后缀,所以只需要提供视频文件的md5值就可以操作视频文件。...