C#.net core WEB-API"proxy"文件下载

C# .net core WEB-API "proxy" file download

我有一个 angular 前端(带有 pdf 查看器)和一个 C# .net 核心 API。

.net 核心 API 正在下载文件(从内部 API),然后将此文件提供给 angular pdf 查看器(如代理)。 它工作正常,但加载时间很长,因为后端会下载整个文件,然后将其提供给前端。 有没有办法检索 api 中的文件,同时将这些文件传送到前端?

所以将文件分块读取到内存流,同时将其提供给前端?

当前实施:

WebClient webClient = new WebClient();
webClient.Headers.Add("Authorization", "Basic xxxxx");
var file = webClient.DownloadData("http://xxxx/" + id + "/pdf");
Stream stream = new MemoryStream(file);
return new FileStreamResult(stream, "application/pdf");

您的问题是 DownloadData 在下载整个文件之前不会继续。试试这个来流式传输数据

WebClient webClient = new WebClient();
webClient.Headers.Add("Authorization", "Basic xxxxx");
var stream = webClient.OpenRead("http://xxxx/" + id + "/pdf");
return new FileStreamResult(stream, "application/pdf");