我正在尝试使用DownloadToStreamAsync()
方法从Azure存储中下载blob。
using (MemoryStream writeStream = new MemoryStream())
{
await blockBlob.DownloadToStreamAsync(writeStream);
}
我可以成功下载该文件,但使用此方法的一个记录优势是,您可以使用流中的数据。
如何实现此目的?如何查看流的进度,比如更新UI以显示读取的当前字节?
答案 0 :(得分:2)
进度报告是我们之前收到的功能请求,但此时我们没有时间表可供分享。与此同时,我可以建议一些解决方法:
MemoryStream
并创建自己的Stream
课程。通过覆盖Write
,BeginWrite
和WriteAsync
等方法,您可以计算接收的字节数。CloudBlockBlob.OpenRead
并获取内部下载blob的Stream
。然后你可以读取块,从而知道到目前为止你收到了多少字节。但是,这样做的缺点是向Blob服务发送更多请求,从而增加了延迟和成本。