代码之家  ›  专栏  ›  技术社区  ›  bdristan

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

  •  0
  • bdristan  · 技术社区  · 6 年前

    在我的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 回复  |  直到 6 年前
    推荐文章