问题描述
阿里云对象存储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做校验。
- 请排查您的代码配置是否满足以下情况,详情请参见CompleteMultipartUpload。
- PartNumber取值为1~10000,PartNumber可以不连续,但必须升序排列。例如第一个Part的PartNumber是1,第二个Part的PartNumber可以是5。
- 通过CompleteMultipartUpload请求创建的Object,ETag是基于一定计算规则生成的唯一值,但不是其内容的MD5值。ETag值可以用于检查Object内容是否发生变化,不建议使用ETag作为Object内容的MD5来校验数据完整性。
说明:
- 对于Put Object请求创建的Object,ETag值是其内容的MD5值。
- 对于其他方式创建的Object,ETag值是基于一定计算规则生成的唯一值。
- 如果问题还是没有解决,请参见设置跨域规则后调用OSS时仍然报“No 'Access-Control-Allow-Origin'”的错误,设置跨域规则后,再尝试上传。
适用于
- 对象存储OSS
反馈
- 本页导读 (1)
文档反馈