如何将非多部分文件内容从客户端传递到Blob存储,而不在Web api应用中对其进行缓冲?

时间:2019-03-18 20:58:02

标签: azure asp.net-web-api blob azure-storage azure-storage-blobs

在我的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流连接起来而不会先缓冲它们?

0 个答案:

没有答案