上传文件超过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

相关文章

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

基于Spring实现自定义错误信息返回详解

《基于Spring实现自定义错误信息返回详解》这篇文章主要为大家详细介绍了如何基于Spring实现自定义错误信息返回效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景目标实现产出背景Spring 提供了 @RestConChina编程trollerAdvice 用来实现 HTT

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Java实现数据库图片上传功能详解

《Java实现数据库图片上传功能详解》这篇文章主要为大家详细介绍了如何使用Java实现数据库图片上传功能,包含从数据库拿图片传递前端渲染,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、数据库搭建&nbsChina编程p; 3、后端实现将图片存储进数据库4、后端实现从数据库取出图片给前端5、前端拿到

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误