DownloadToStreamAsync返回空流C#

时间:2018-04-20 01:40:40

标签: c# azure azure-storage-blobs

我尝试从Azure上的blob帐户下载blob文件作为bytearray。我这样做。

 var blockBlob = blobContainer.GetBlockBlobReference(id);

                using (var mStream = new MemoryStream())
                {
                    blockBlob.DownloadToStreamAsync(mStream);
                    result = mStream.ToArray();
                }

上面的代码返回一个空流。我确实在我的azure blob帐户上有文件,我检查了由代码生成的uri,它与我的azure blob上的文件相同,我想以bytearray的形式下载该文件。

有没有更好的方法在c#中将azure blob文件下载为bytearray?

2 个答案:

答案 0 :(得分:1)

您可以参考两个选项

  • 正如@Gaurav所说,使用await blockBlob.DownloadToStreamAsync(mStream)
    请注意,如果使用此等待,您的方法应更改为public async Task methodname()
  • 如果您不需要异步方法,只需使用blockBlob.DownloadToStream(mStream)

一些参考资料

答案 1 :(得分:1)

您应该等到异步操作完成。

          using (var mStream = new MemoryStream())
            {

                 await  blockBlob.DownloadToStreamAsync(mStream);
                 result = mStream.ToArray();
            }

你变得空虚,因为当它还没有时,你试图从中获得价值。