设计用于下载大文件的.NET C#服务端点

时间:2017-09-23 02:43:03

标签: c# .net service

我有一个UI和一个.NET c#后端服务器,可以相互通信。我有一个路由/getBigFile,UI调用按钮单击,C#后端可能需要60秒才能创建并返回,以便用户可以下载它。 (文件可以小到1 kb到600 mb)

这意味着UI必须等待打开连接,直到C#返回HttpResponse。这显然是一个糟糕的设计,因为它迫使用户留在网页上,直到文件回来。

我想到了不同的解决方案:

  1. 将文件流式传输到用户界面,以便立即开始下载。
  2. 在启动创建文件的异步作业后,让C#后端立即返回httpResponse,将其上传到S3并在成功/失败时通过电子邮件发送文件。 (如果关闭客户端服务器连接,异步作业部分是否仍然有效)
  3. 我不确定哪种方式会更好。第一种方式似乎是更好的UX选择,但是当多个用户请求大文件时,我觉得如果我使用排队机制(使用Amazon SQS或Redis)实现它,第二选择会更好地处理。我真的不知道如何这会工作。)

    我从来没有设计过这样的东西,任何指针和资源/指导都会非常感激!

    谢谢。

0 个答案:

没有答案