【发布时间】:2023-06-10 10:39:01
【问题描述】:
我正在编写一个 ASP.NET Web API 应用程序,它要求我接受文件上传并将该文件转发到另一个 HTTP 端点。
我担心如果许多用户尝试每个人上传一个 100MB 的文件(这是一个有效的用例),那么我的应用程序将占用大量内存,并且根据大型请求的数量,这个占用量可能会变得很大,而我的应用程序会崩溃并死掉。
理想情况下,我希望在 Web 服务器开始接收文件后立即开始将文件流式传输到另一个 HTTP 端点,以显着减少服务器上的负载。
我确定这个过程有一个名字,但我不知道 - 这使得搜索它变得相当困难。
我已经对 Web API 中的响应流式处理做了很多工作,但我以前从未考虑过请求流式传输。
尽我所能告诉我我需要弄清楚如何:
- 在完成上传之前开始处理流。
- 使用 HttpClient 流式传输相同的请求以将相同的数据流式传输到另一个 HTTP 端点。
谁能给我一些建议?
【问题讨论】:
-
您最终使用了什么 MultipartStreamProvider 来实现这一点?我正在努力实现完全相同的目标......你能分享你的控制器代码吗?
标签: c# asp.net streaming asp.net-web-api