From 2a3d8bab6c79d71dc4e9057dd7511cb417325710 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com>
Date: Sat, 23 Dec 2023 20:26:56 +0800
Subject: [PATCH] =?UTF-8?q?:sparkles:=E6=96=B0=E5=A2=9E=E8=AF=B7=E6=B1=82?=
=?UTF-8?q?=E5=A4=A7=E5=B0=8F=E9=99=90=E5=88=B6=EF=BC=8C=E9=BB=98=E8=AE=A4?=
=?UTF-8?q?50M?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../WebExtensions/RequestLimitExtension.cs | 35 +++++++++++++++++++
ZR.Admin.WebApi/Program.cs | 2 ++
ZR.Admin.WebApi/appsettings.json | 5 +--
3 files changed, 40 insertions(+), 2 deletions(-)
create mode 100644 Infrastructure/WebExtensions/RequestLimitExtension.cs
diff --git a/Infrastructure/WebExtensions/RequestLimitExtension.cs b/Infrastructure/WebExtensions/RequestLimitExtension.cs
new file mode 100644
index 0000000..e57ec9d
--- /dev/null
+++ b/Infrastructure/WebExtensions/RequestLimitExtension.cs
@@ -0,0 +1,35 @@
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Http.Features;
+using Microsoft.AspNetCore.Server.Kestrel.Core;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace ZR.Infrastructure.WebExtensions
+{
+ public static class RequestLimitExtension
+ {
+ ///
+ /// 请求body大小设置
+ ///
+ ///
+ ///
+ public static void AddRequestLimit(this IServiceCollection services, IConfiguration configuration)
+ {
+ var sizeM = configuration.GetSection("upload:requestLimitSize").Get();
+ services.Configure(x =>
+ {
+ x.MultipartBodyLengthLimit = sizeM * 1024 * 1024;
+ x.MemoryBufferThreshold = sizeM * 1024 * 1024;
+ x.ValueLengthLimit = int.MaxValue;
+ });
+ services.Configure(options =>
+ {
+ options.Limits.MaxRequestBodySize = sizeM * 1024 * 1024;
+ });
+ services.Configure(options =>
+ {
+ options.MaxRequestBodySize = sizeM * 1024 * 1024; // 设置最大请求体大小为500MB
+ });
+ }
+ }
+}
diff --git a/ZR.Admin.WebApi/Program.cs b/ZR.Admin.WebApi/Program.cs
index b0bda3c..5eccb37 100644
--- a/ZR.Admin.WebApi/Program.cs
+++ b/ZR.Admin.WebApi/Program.cs
@@ -47,6 +47,8 @@ builder.Services.AddSingleton(new AppSettings(builder.Configuration));
builder.Services.AddAppService();
//开启计划任务
builder.Services.AddTaskSchedulers();
+//请求大小限制
+builder.Services.AddRequestLimit(builder.Configuration);
//注册REDIS 服务
var openRedis = builder.Configuration["RedisServer:open"];
diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json
index 2e52bf4..9fd51ca 100644
--- a/ZR.Admin.WebApi/appsettings.json
+++ b/ZR.Admin.WebApi/appsettings.json
@@ -39,12 +39,13 @@
"DemoMode": false, //是否演示模式
"SingleLogin": false, //是否允许多设备/浏览器登录
"workId": 1, //雪花id唯一数字
- "sqlExecutionTime": 5,//Sql执行时间超过多少秒记录日志并警报
+ "sqlExecutionTime": 5, //Sql执行时间超过多少秒记录日志并警报
"Upload": {
"uploadUrl": "http://localhost:8888", //本地存储资源访问路径
"localSavePath": "", //本地上传默认文件存储目录 wwwroot
"maxSize": 15, //上传文件大小限制 15M
- "notAllowedExt": [ ".bat", ".exe", ".jar", ".js" ]
+ "notAllowedExt": [ ".bat", ".exe", ".jar", ".js" ],
+ "requestLimitSize": 50//请求body大小限制
},
//阿里云存储配置
"ALIYUN_OSS": {