阿里云OSS SDK分片上传(multipartUpload)400 Etag 错误

这个标题不太好理解,总结一下就是:使用阿里云的OSS的SDK,分片上传文件时,出现了 400 错误,并且提示到了 etag,错误信息我忘了保存了,晚上回去复现截个图保存一下。

这个问题阿里云官方文档其实说了,但为啥很多人没看到呢?我总结了一下,大概有两点原因:

  • 不看文档
  • 对文档定位不够

不看文档

第一个问题是一定要避免的,任何一个技术的使用,都要好好看文档,也许用不了那么多API,但多看看总是无害有益的。

文档定位

其实大部分的时候,只要看文档,基本很少会出现错误的定位,那么这个问题我为什么会说可能是错误定位呢?

回答这个问题,先贴以下这个问题出现的原因:

https://source.ittlr.com/yaimeet-com/ali-oss-sdk-error/aliyun-config.png

可以看到,在开始之前,就告诉了让你配置什么才能正常使用。

但是呢,现在前端开发,在开发阶段,都是在node环境,大部分人,在看文档的时候,往往都会直接选择 NodeJs 的文档,但是,对于这种 SDK 来说,人家说的 NodeJs 是针对把 NodeJs 作为后台语言来说的,所以在 NodeJs 那一栏的文档中,肯定找不到关于这一块的说明,因为后台在上传时,是和浏览器没有关系的,所以不会出现这个问题。

当然,除了这个原因,也有可能还是别的原因,总之自我总结即可。

解决问题截图

登录阿里云控制台,进入 OSS,选择你的 Bucket,基础设置,跨域设置,然后在你的规则里面,编辑会看到下图,然后在 暴露 Headers 里面添加 etagx-oss-request-id 即可解决这个问题。

https://source.ittlr.com/yaimeet-com/ali-oss-sdk-error/config-detail.png

写在最后的话:在设置 * 的地方,建议填写真实的IP和域名,开发阶段为了方便,这样可以,但会有安全风险。

Last modification:December 15th, 2019 at 02:44 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment