C# 将无缓冲区的数据从MultipartMemoryStreamProvider传输到输出流

C# 将无缓冲区的数据从MultipartMemoryStreamProvider传输到输出流,c#,asp.net,asp.net-web-api,upload,proxy,C#,Asp.net,Asp.net Web Api,Upload,Proxy,我在做一种代理。客户端将文件上载到WebAPI方法,此WebAPI方法将文件发送到其他HTTP位置。我有以下代码: [HttpPost] public async Task mPost(string id) { var provider = new MultipartMemoryStreamProvider(); var r = Request.Content.ReadAsMultipartAsync(provider).ContinueWith(async t =&g

我在做一种代理。客户端将文件上载到WebAPI方法,此WebAPI方法将文件发送到其他HTTP位置。我有以下代码:

[HttpPost]
public async Task mPost(string id)
{     
    var provider = new MultipartMemoryStreamProvider();
    var r = Request.Content.ReadAsMultipartAsync(provider).ContinueWith(async t =>
    {
        var file = provider.Contents.First();                
        var buffer = await file.ReadAsByteArrayAsync();
        var stream = new MemoryStream(buffer);

        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.ExpectContinue = false;

            using (var content = new StreamContent(stream))
            {                       
                using (var req = new HttpRequestMessage(HttpMethod.Put, "target_url"))
                {        
                    req.Content = content;

                    using (HttpResponseMessage resp = client.SendAsync(req).Result)
                    {
                        resp.EnsureSuccessStatusCode();
                    }
                }
            }
        }

    });
它可以工作,但我不喜欢的是在某个时刻(
var buffer=await file.ReadAsByteArrayAsync();
)服务器内存中有所有文件数据


如何将数据直接从输入流传输到输出,而不将其保存在内存缓冲区中?

一个选项是使用
WebRequest
而不是
HttpClient
,并将
文件
流直接复制到请求中

要异步请求流,请使用和发送内容-


有很多这样执行帖子的例子,例如,你找到问题的答案了吗?