使用 .Net Core 3.1 或 .Net Core 5.0 上传大文件

        如果您正在使用 .net core 并且它拒绝上传大文件,那么本文适合您。

        我分享了一些处理大文件时需要牢记的建议,以及如何根据我们的需求配置我们的服务,并提供无限制的服务。

开始前的要求: 

下载:https://dotnet.microsoft.com/download/dotnet/3.1

可选: https://git-scm.com/downloads

示例代码:https://download.youkuaiyun.com/download/hefeng_aspnet/90138207

对于支持大文件上传的服务,我考虑了三件事:

1- Program.cs 类

2- Startup.cs 类

3- 最重要的:您托管服务的位置。 在使用 aws ser 的情况下,托管服务的实例可以处理文件非常重要。 

1- Program.cs 类和 IHostBuilder 方法 

        获取或设置允许的任何请求主体的最大大小(以字节为单位)。设置为 null 时,请求主体的最大大小不受限制。 

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
 .ConfigureWebHostDefaults(webBuilder =>
 {
   webBuilder.UseStartup<Startup>();
   

   webBuilder.UseKestrel(options =>
   {

     options.Limits.MaxRequestBodySize = null;

   });

  });

2- Startup.cs 类和 ConfigureServices 方法。 

services.Configure<IISServerOptions>(options => options.MaxRequestBodySize = int.MaxValue);

services.Configure<KestrelServerOptions>(options =>
 {
   options.Limits.MaxRequestBodySize = int.MaxValue; // if don't set    default value is: 30 MB
});

services.Configure<FormOptions>(x =>
{
  x.ValueLengthLimit = int.MaxValue;

  x.MultipartBodyLengthLimit = int.MaxValue;

  x.MultipartBoundaryLengthLimit = int.MaxValue;

  x.MultipartHeadersCountLimit = int.MaxValue;

  x.MultipartHeadersLengthLimit = int.MaxValue;
});

options.Limits.MaxRequestBodySize = null;
});

3- 处理大文件最糟糕的事情是,如果它使您正在处理的实例爆炸,只需单击一下就可以使所有内容爆炸。有可能在生产中体验到巨大的负载,在达到那个环境之前,幸运的是,我们经历了其他环境,哈哈!在第一次测试中,我在大约有 10 个服务的 t2.medium 实例中爆炸了所有内容。我们传递给 t2.xlarge 实例并进行处理,没有问题。 

t2.medium → t2.xlarge 

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值