【发布时间】:2021-10-21 07:02:26
【问题描述】:
我的一些用户需要能够使用我的 Web API 端点下载非常大的 zip 文件。其中一些文件的大小可能超过 1GB。文件本身在 Azure 中存储为 blob。显然加载整个流将不起作用,尤其是对于多个用户,因为我很可能会用完内存。所以我需要以某种方式分块发送。
谁能解释/告诉我这将如何使用 Web API 工作?我不知道该怎么写。或者关于如何以可扩展的方式实现我的目标的任何其他更好的建议?
这是我拥有的一个端点:
public async Task<IHttpActionResult> GetFile(int fileId)
{
// TODO: somehow stream chunks from azure through to the client's browser...
}
Web 浏览器用于通过 Web API 发起请求。我想在我的 HTML 页面上简单地包含一个锚标记,用户可以单击该标记来下载文件:
<a href='localhost/File?fileId=3'>Click here to download</a>
【问题讨论】:
-
您能告诉我们一些有关您的 Web API 客户端(主要是用户代理)的信息吗?它是基于浏览器的应用程序还是桌面/移动应用程序?
-
对不起,我应该更清楚。正在通过网络浏览器访问网络 API。简单的锚标记。
标签: http azure asp.net-web-api streaming azure-blob-storage