node+js实现大文件分片上传
1、什么是分片上传 分片上传就是把一个大的文件分成若干块,一块一块的传输。这样做的好处可以减少重新上传的开销。比如:如果我们上传的文件是一个很大的文件,那么上传的时间应该会比较久,再加上网络不稳定各种因素的影响,很容易导致传输中断,用户除了重新上传文件外没有其他的办法,但是我们可以使用分片上传来解决这个问题。通过分片上传技术,如果网络传输中断,我们重新选择文件只需要传剩余的分片。而不需要重传整个文件,大大减少了重传的开销。 但是我们要如何选择一个合适的分片呢?因此我们要考虑如下几个事情: 1. 分片越小,那么请求肯定越多,开销就越大。因此不能设置太小。 2. 分片越大,灵活度就少了。 3. 服务器端都会有个固定大小的接收Buffer。分片的大小最好是这个值的整数倍。 因此,综合考虑到推荐分片的大小是2M-5M,具体分片的大小需要根据文件的大小来确定,如果文件太大,建议分片的大小是5M,如果文件相对较小,那么建议分片的大小是2M。 实现文件分片上传的步骤如下: 1. 先对文件进行md5加密。使用md5加密的优点是:可以对文件进行唯一标识,同样可以为后台进行文件完整性校验进行比对。 2. 拿到md5值以后,服务器端查询下该文件是否已经上传过,如果已经上传过的话,就不用重新再上传。 3. 对大文件进行分片。比如一个100M的文件