当前位置: 首页 > news >正文

杭州建设招聘信息网站/百度知道合伙人答题兼职入口

杭州建设招聘信息网站,百度知道合伙人答题兼职入口,昭通网站建设 hardlcp,web网站开发不必掌握哪些计数问题排查和解决过程 之前做了个项目,需要用到文件上传,启动项目正常,正常上传图片也正常,但这里图片刚好都小于1M,在代码配置文件里面也写了配置,限制大小为500M,想着就没问题(测试…

问题排查和解决过程

之前做了个项目,需要用到文件上传,启动项目正常,正常上传图片也正常,但这里图片刚好都小于1M,在代码配置文件里面也写了配置,限制大小为500M,想着就没问题(测试环境覆盖OK,正式环境不太一样)

今天有同事,在项目上替换内容图片,突然报了个错“413”

1、前端控制台报错

Access to XMLHttpRequest at 'https://opm.custom.zdjcyun.com/cos/upload' from origin 'http://111.230.194.242:9981' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

这里当然不是什么跨域问题,然后后端接口调用排查

2、控制台异常

org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected because its size (1121317) exceeds the configured maximum (1048576)

Caused by: java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected because its size (1121317) exceeds the configured maximum (1048576)

Caused by: org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected because its size (1121317) exceeds the configured maximum (1048576)

从上述异常可以看出,是因为上传的file文件超过了spring默认配置的最大值1048576 bytes,上传文件我们通常情况下是使用MultipartFile接口类接收前端上传的文件,可见对于MultipartFile文件的默认限制也是1048576 bytes,即1M。

重点:这里我的配置文件已经设置过文件大小为500M

spring:servlet:multipart:enabled: truefile-size-threshold: 0max-file-size: 500MBmax-request-size: 500MB

3、测试环境

测试正常通过

4、线上环境

此时已经意识到是线上环境的问题,但我们用的是容器管理,KubeSphere统一管理,nginx一般是默认配置,负责生产环境的同事这个默认配置是没有更改过的,都没注意,还好改一下路由配置就OK了

问题总结

线上环境总是和测试环境有不同,测试用例覆盖不够,相应路由和代理配置要考虑周全,一般就是①代码配置、②nginx配置、③其他路由网关配置、④前端限制,开发过程按1234排查,线上排查则反向按4321顺序排查

相关知识

1、上传文件默认参数

SpringBoot不同的版本,对应的设置参数不同:

Spring Boot 1.3.x and earlier

multipart.maxFileSize
multipart.maxRequestSize


Spring Boot 1.4.x and 1.5.x

spring.http.multipart.maxFileSize
spring.http.multipart.maxRequestSize

Spring Boot 2.x

spring.servlet.multipart.maxFileSize
spring.servlet.multipart.maxRequestSize

2、配置方式

方法一、在配置文件.yml或者.properties中直接修改参数

例如我使用的是SpringBoot 2.2.2的版本,然后直接再配置文件中设置参数大小:

#做限制的参数配置
spring:servlet:multipart:enabled: true #默认支持文件上传max-file-size: 20MB # 最大支持文件大小max-request-size: 30MB # 最大支持请求大小#不做限制的参数配置
spring:servlet:multipart:enabled: true #默认支持文件上传max-file-size: -1 #不做限制max-request-size: -1 #不做限制

设置完重启项目即可成功上传文件。

方法二、自定义config配置类

将参数配置在远程配置文件中心,如果是配置项目中的配置文件中,那就跟方法一一样,就没必要再单独写配置类了,将参数配置在远程配置中心,就是为了可以根据临时需求动态修改参数,而不用重启项目,开发过程中所有配置保持一致通过测试即可。

常见的远程配置文件中心服务有Nacos、Apollo(阿波罗)、SpringCloud等等,或者容器使用文件挂载,更改配置后,重新构件用例即可。
方法三、自定义MultipartFileConfig配置类:

@Configuration
public class MultipartFileConfig {@Value("${config.multifile.maxFileSize}")private Long maxFileSize;@Value("${config.multifile.maxRequestSize}")private Long maxRequestSize;@Beanpublic MultipartConfigElement multipartConfigElement() {MultipartConfigFactory factory = new MultipartConfigFactory();/*** 单个数据大小,* DataSize.ofMegabytes(maxFileSize)默认是配置字节,将字节转化为MB*/factory.setMaxFileSize(DataSize.ofMegabytes(maxFileSize));// 总上传数据大小factory.setMaxRequestSize(DataSize.ofMegabytes(maxRequestSize));return factory.createMultipartConfig();}
}


 

http://www.jmfq.cn/news/5343625.html

相关文章:

  • 上海网站建设上海迈歌/河北seo诊断培训
  • 建设部网站江苏金安/优质网站
  • 青海省住房和城乡建设厅门户网站/百度代运营推广
  • 如何找到能够建设网站的人/seo的含义是什么意思
  • 贵德县wap网站建设公司/新闻发布
  • 院系网站建设具体要求/app推广拉新接单平台
  • 联想电脑建设网站前的市场分析/seo外包公司如何优化
  • 环保部网站建设项目/电商seo
  • 中国网站建设调查分析/公司注册
  • 讨论致同国际网站建设情况/软文编辑
  • 政府网站建设绩效评估/职业培训机构有哪些
  • 网站建设的课程都需要什么/磁力天堂最新版地址
  • 淘宝现在网站建设不能发布要发布上面类目/怎么联系地推公司
  • 兰州网站网站建设/seo推广优化服务
  • 网站建设合同标的/国内广告投放平台
  • 石家庄城乡建设局网站6/指定关键词排名优化
  • 网站的建设公司/关键词排名点击软件
  • 汉南城乡建设局网站/广州seo网络优化公司
  • 吴江城乡住房和城乡建设局网站/免费优化网站排名
  • 赤峰北京网站建设/aso排名服务公司
  • 网站建设工作方案范文/百度网游排行榜
  • 中企动力建设网站/网站建设价格
  • 鄂北局网站建设者风采/域名注册网
  • 专业集团门户网站建设服务商/免费学生html网页制作成品
  • 浙江昆仑建设集团网站/成都自动seo
  • 免费网站建设公司/莆田seo
  • phpstudy网站建设教程/百度平台
  • 合肥城乡建设网站首页/苏州推广排名
  • 大连筑成建设集团有限公司网站/自己怎么做网址
  • 关于文明网站建设存在的问题/黑帽seo365t技术