C# 增加.NET core 3.1 Web Api中的上载文件大小

C# 增加.NET core 3.1 Web Api中的上载文件大小,c#,.net,.net-core,webapi,C#,.net,.net Core,Webapi,目前,我正在使用.NET核心web API,需要上传文件大小不受限制。 我已经搜索了它的解决方案,但没有关于它的确切文档 尝试了以下选项 #第一种方法 public void配置服务(IServiceCollection服务) { services.Configure(x=> { x、 ValueLengthLimit=int.MaxValue; x、 MultipartBodyLengthLimit=int.MaxValue; x、 MultipartHeadersLengthLimit=in

目前,我正在使用.NET核心web API,需要上传文件大小不受限制。 我已经搜索了它的解决方案,但没有关于它的确切文档

尝试了以下选项

#第一种方法

public void配置服务(IServiceCollection服务)

{ services.Configure(x=> { x、 ValueLengthLimit=int.MaxValue; x、 MultipartBodyLengthLimit=int.MaxValue; x、 MultipartHeadersLengthLimit=int.MaxValue; }))

services.AddMvc(); }

#第二种方法

[RequestSizeLimit(100_000_000)]


如果有人对此有一个参考,那就太好了。

试着把这两个
[RequestFormLimits(MultipartBodyLengthLimit=2147383648)][RequestSizeLimit(2147383648)]
加在一起你真的不希望它是无限的。如果有人试图上传2GB文件怎么办?或者更糟糕的是,如果有人发出一个调用并开始向流中写入随机字节,直到API崩溃,该怎么办?这是一种非常常见的攻击。即使您确实需要接受如此大的文件,在一次调用中上载GB大小的数据也很容易找到一个合理的限制并设置它,以确保您的Web API不易受到攻击。如果您真的想接受多GB数据,那么最好允许海报进行部分上传,每次发布特定范围的文件。这将允许在出现故障时重试。这是所有下载/上传工具都能做到的。您必须处理此引用的范围标头,因为您要求它:。如果这是一个API,考虑请求一个URL,并使用它下载文件。如果您正在使用API,请直接上传到Azure Blob存储、AWS S3等,并将该URL传递给API。
[HttpPost]