阿里云 OSS 前端 Node.js 分片上传 ETag 不是MD5码问题
默认OSS 上传文件返回的ETag是文件的MD5码,但是当使用 Node.js分片上传时返回的ETag不是MD5码。经过测试分析发现,Node.js 分片上传返回的ETag是每一个分片的MD5码(大写)的拼接后字符串再取MD5码的值 + “-” + 分片个数。有了此结论就可以对此类上传的文件进行唯一校验和文件是否改动校验。
下面是验证步骤有兴趣的可以看下:
1、准备一个1.27M的问题(其实准备多大的都行,因为oss 前端上次默认分片是1M所以为了简单方便我准备的是1.27M文件)

2、根据OSS 教程 写一个上传的js(需要本地先安装node.js,我的样例文件叫upload.js下面会附图)

下面是我的前端上传demo

3、在cmd中执行upload.js,实现前端上传。执行结果如下

4、使用java代码对文件进行分片并获取每一片的MD5,再对MD5进行拼接再取MD5

执行结果:

对结果进行比对验证了我们上面的结论。

浙公网安备 33010602011771号