gpt4 book ai didi

c# - 增加使用 Azure 部署的 K8s 集群中的最大文件上传大小(使用 C# 和 React 的 ASP.NET Core 中的项目)

转载 作者:行者123 更新时间:2023-12-02 07:38:46 26 4
gpt4 key购买 nike

如何提高 Azure 中的文件上传大小限制?它的上限约为 1MB。我尝试查看 Azure 门户中的各种设置,但找不到任何内容。我认为问题出在云环境上,因为我在本地没有问题。

我有一个 C# Web 应用程序,它使用 ASP.NET Core 和 React with .tsx。当我在本地运行该程序时,我可以上传最大大小为 28MB 的文件,这是 ASP.NET Core 的默认限制。但是,当我使用 Azure 部署到 K8s 集群(Kubernetes 服务)时,Web 应用程序只能上传大小约为 1MB 的文件。

我可以上传 984KB .jpg 文件。当我尝试上传 1,043KB .png(或任何更大的文件)时,响应为

413 Request Entity Too Large

nginx/1.17.7

我见过this question's solution这是

The files object I was looping over in the posted code snippet was a IList type, which I was getting by casting the Request.Form.Files in the controller. Why I was doing this, I can't recall. Anyway, leaving the file list as the default IFormFileCollection that it gets bound to by MVC (the type on Request.Form.Files) seems to fix it. It also solved another problem I was having of certain file extensions not uploading.

但是,我使用IFormFile全程上传,无需强制转换。前端 .tsx 的表单带有 dropzone输入组件。变更事件e.currentTarget.files返回 FileList 。上传文件命令和 Controller 都独占使用 IFormFileIFileSystem .

最佳答案

您没有提供太多详细信息,因此我猜您使用的是如下所示的默认设置:

  • 您有一个 nginx 入口服务
  • 您的应用在此代理后面运行

正如您在错误消息中看到的,问题不是您的 asp.net core 应用程序,而是它前面的 nginx 入口。

要解决这个问题,您必须配置 nginx 入口以允许更大的上传。

在我们的配置中,这看起来像这样

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-body-size: 500m

修复它的步骤:

  • 更新您的入口 list 文件
  • 使用 kubectl 应用更改

文档:

关于c# - 增加使用 Azure 部署的 K8s 集群中的最大文件上传大小(使用 C# 和 React 的 ASP.NET Core 中的项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64104705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com