OSS在使用分片上传方式上传文件时报InvalidPart错误

问题描述

阿里云对象存储OSS在使用分片上传方式上传文件时,上传小于100KB的文件可以正常上传,上传大于100KB的文件时报InvalidPart错误,详细报错信息如下:

One or more of the specified parts could not be found or the specified entity tag might not have matched the part's entity tag

问题原因

PartNumber或ETag错误导致CompleteMultipartUpload提交的Part无效。

解决方案

在将所有数据Part都上传完成后,您必须调用CompleteMultipartUpload接口来完成整个文件的分片上传,服务端在调用CompleteMultipartUpload接口时会对PartNumber和ETag做校验。

  1. 请排查您的代码配置是否满足以下情况,详情请参见CompleteMultipartUpload
    • PartNumber取值为1~10000,PartNumber可以不连续,但必须升序排列。例如第一个Part的PartNumber是1,第二个Part的PartNumber可以是5。
    • 通过CompleteMultipartUpload请求创建的Object,ETag值是其内容的UUID。ETag值可以用于检查Object内容是否发生变化,不建议使用ETag作为Object内容的MD5来校验数据完整性。
  2. 如果问题还是没有解决,请参见设置跨域规则后调用OSS时仍然报“No 'Access-Control-Allow-Origin'”的错误,设置跨域规则后,再尝试上传。

适用于

  • 对象存储OSS