通过SDK上传oss文件报错“413 Request Entity Too Large”
问题描述
通过SDK上传oss文件返回错误如下,客户反馈上传的文件不大,只有200M。浏览器端访问返回504 timeout报错,同客户核实是每次到1min 30s时候上传大文件会报错
com.aliyun.oss.OSSException: Failed to parse the response result. [ErrorCode]: InvalidResponse [RequestId]: null [HostId]: null [ResponseError]: <html> <head><title>413 Request Entity Too Large</title></head> <body> <center><h1>413 Request Entity Too Large</h1></center> <hr><center>nginx/1.16.1</center> </body> </html>
问题处理
查看访问链路中 可能做的访问限制,其中nginx代理侧限制为500M
同阿里进一步核实,OSS 上传文件核实也没有时间限制
阿里反馈SDK有一些超时限制。例如java
检查后没有时间限制
进一步核实链路上是否有其他限制
访问链路: SLB--ECS(nginx)--OSS (域名访问首先经过SLB,再到后端ECS,后端程序中再调用OSS上传接口)
修改了SLB的超时时间,从60S改为180S后可以上传了,但是从报错日志来看,SLB记录有504状态码
问题分析
60秒内没后端没有将请求处理完成,并且将响应回复的数据包在60秒内没有发送完成。 后端需要在这个超时时间内将响应处理完成。
解决办法
优化后端处理时间,将负载均衡的超时时间延长调整。