【发布时间】:2019-04-09 23:10:02
【问题描述】:
我正在尝试从 blob 存储下载一个 1GB 的文件到客户端。我在 Memory Stream 之前使用过,我得到 OutOfMemory 异常。
现在我正在尝试从 blob 打开读取流并将其直接发送到客户端。
[HttpGet]
[ResponseType(typeof(HttpResponseMessage))]
public async Task<HttpResponseMessage> DownloadAsync(string file)
{
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
var stream = await blob.OpenReadAsync("container", file);
result.Content = new StreamContent(stream);
return result;
}
文件下载正确,但问题是:代码在客户端下载完整的流,然后客户端看到下载的文件。 我希望客户端看到文件正在下载,所以用户知道他正在下载一些东西。不只是阻止请求并等待它完成。
我在 Angular2 中使用 FileSaver:
this.controller.download('data.zip').subscribe(
data => {
FileSaver.saveAs(data, 'data.zip');
});
有人知道如何解决吗?
谢谢!
【问题讨论】:
-
您找到解决方案了吗?
-
@Neel 不幸的是,不是!如果您找到了问题的解决方案,请随时将其添加为答案,以便其他开发人员可以从中学习。谢谢!
-
@SamySammour 我也有类似的问题。请问你是怎么解决的?
-
@ark 不,我确实直接从 Blob 存储而不是服务器下载了该项目
标签: download stream azure-blob-storage