上传文件超过1Mb,返回413错误

2024-05-06 10:08
文章标签 错误 上传 返回 超过 413 1mb

本文主要是介绍上传文件超过1Mb,返回413错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

   近期手头上有一个项目在整体上云,期间遇到一个Cloud storage上传文件超过限制的问题,在此记录一下。

   背景是:IBM Cloud的K8s + PersistentVolumeClaim + Webdav + Ingress(Nginx)

   详细情况是 有许多项目部署在K8s集群上,并且用PersistentVolumeClaim(大小为20G)做为一块虚拟的磁盘,存储项目中需要用到的一些静态文件;并且在集群中的PVC之上通过webdav协议,提供了外部的读写能力(主要是通过Cyberduck等软件进行上传文件的功能);最后使用了Ingress作了地址的映射。

   在实际的使用过程中发现一个问题,通过Cyberduck上传文件时,小于1Mb的文件能上传成功,但是大于1Mb的文件会返回413错误(413 Request Entity Too Large)。

 Cyberduck上传失败截图

   通过调研,排除了PersistentVolumeClaim和webdav对文件大小的限制,最终发现nginx有相关的设置:

   client_max_body_size

   该设置规定了文件大小,默认是1Mb。

   

   最终找到了Ingress的annotations里,ingress.kubernetes.io/proxy-body-size对应的设置就是nginx的 client_max_body_size,于是在ingress.yaml中加上了如下配置:

  annotations:ingress.bluemix.net/client-max-body-size: 64m

   由于我们的环境装的IBM Cloud,查阅annotation的具体配置方法可以参考https://console.bluemix.net/docs/containers/cs_annotations.html#ingress_annotation

   对其他版本的Ingress,需要配置

annotations:ingress.kubernetes.io/proxy-body-size: "50m"

   或者

annotations:nginx.ingress.kubernetes.io/proxy-body-size: "50m"

   

   It works!

   

   写在最后:

   1. 改完yaml文件配置别忘了重新apply。

   2. 与client_max_body_size类似的nginx设置还有client_header_timeout, client_body_timeout, proxy_connect_timeout等,感兴趣的小伙伴可以自行研究。

这篇关于上传文件超过1Mb,返回413错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/964086

相关文章

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

Django HTTPResponse响应体中返回openpyxl生成的文件过程

《DjangoHTTPResponse响应体中返回openpyxl生成的文件过程》Django返回文件流时需通过Content-Disposition头指定编码后的文件名,使用openpyxl的sa... 目录Django返回文件流时使用指定文件名Django HTTPResponse响应体中返回openp

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp