在阅读时使用Azure DownloadToStreamAsync中的字节?

时间:2015-06-25 09:08:14

标签: c# azure streaming filestream azure-storage-blobs

我正在尝试使用DownloadToStreamAsync()方法从Azure存储中下载blob。

 using (MemoryStream writeStream = new MemoryStream())
 {
      await blockBlob.DownloadToStreamAsync(writeStream);
 }

我可以成功下载该文件,但使用此方法的一个记录优势是,您可以使用流中的数据。
如何实现此目的?如何查看流的进度,比如更新UI以显示读取的当前字节?

1 个答案:

答案 0 :(得分:2)

进度报告是我们之前收到的功能请求,但此时我们没有时间表可供分享。与此同时,我可以建议一些解决方法:

  1. 换行MemoryStream并创建自己的Stream课程。通过覆盖WriteBeginWriteWriteAsync等方法,您可以计算接收的字节数。
  2. 您可以调用CloudBlockBlob.OpenRead并获取内部下载blob的Stream。然后你可以读取块,从而知道到目前为止你收到了多少字节。但是,这样做的缺点是向Blob服务发送更多请求,从而增加了延迟和成本。