OSS同时上传5张相同图片,上传被中断的问题

产品有一个上传多张图片的需求,前端同事开了多个任务进行处理,结果发现一个可以百分百复现的问题:5张相同的大图片,往往上传成功一两张后就报错了,其报错内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10

<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>NoSuchUpload</Code>
  <Message>The specified upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed.</Message>
  <RequestId>61CEC8AE0119273036885C73</RequestId>
  <HostId>sdtc-1.oss-cn-shenzhen.aliyuncs.com</HostId>
  <UploadId>0A03563474C84909AE9166914ABD989B</UploadId>
</Error>

最后我们分析出是因为5张图片的哈希值是一样的,所以我们决定在上传前计算图片的Hash值,如果Hash值相同,则只开启一个上传任务。

具体造成该问题的细节涉及到了OSS相关的知识,我知识储备还不足,就不讨论了。