首页 > 解决方案 > 如何将非多部分文件内容从客户端传递到 blob 存储而不在 web api 应用程序中缓冲它?

问题描述

在我的 web api 中,我需要接收文件,然后将它们保存在 blob 存储中。不允许客户端访问并且不知道 blob 存储。我试图避免缓冲可能高达 300MB 的文件。我看过这篇文章How to I pass a stream from Web API to Azure Blob storage without temp files? 但是帖子中描述的解决方案对我不起作用,因为它假定了多部分内容,这反过来又允许自定义提供程序。我需要处理的客户不使用多部分内容发送文件。相反,它们只是在消息正文中发送文件内容。

这是现在对我有用的(带缓冲):

using (var inStream = await this.Request.Content.ReadAsStreamAsync())
{
    var blob = container.GetBlockBlobReference(fileName);
    var outStream = await blob.OpenWriteAsync();
    await inStream.CopyToAsync(outStream);
    outStream.Close();
}

有没有办法将请求的流与 blob 流连接起来,而不需要先缓冲?

标签: azureasp.net-web-apiblobazure-storageazure-blob-storage

解决方案


推荐阅读