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": {