作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 Azure MVC 网站中提供存储在 Blob 存储中的文件的下载链接。我不希望用户看到我的 blob 存储 URL,并且我想提供我自己的下载链接来提供文件名。
我认为这可以通过传递(转发)流来完成。在SO中发现了许多类似的问题,例如:Download/Stream file from URL - asp.net .
我看到的问题是:想象 1000 个用户同时开始下载一个文件。这将完全杀死我的服务器,因为池中的线程数量有限,对吗?
我应该说,我要转发的文件大约有 100MB 大,因此 1 个请求可能需要大约 10 分钟。
我是对的,或者我可以毫无风险地做到这一点吗? MVC5 中的异步方法有帮助吗?谢谢!
更新:我的 azure 示例仅提供一些背景知识。我实际上对 MVC 中的长流方法的理论问题感兴趣。
最佳答案
在你的情况下,Lukas,我实际上建议你考虑使用本地临时存储区域来存储 blob,并从那里提供它。这将导致第一次交付文件的延迟,但所有后续请求都会更快(根据我的经验),并导致 azure 存储事务调用更少。它还消除了 Azure 存储帐户或 Blob 遇到限制的风险。您的吞吐量限制将基于虚拟机实例的出站带宽及其可以支持的连接数。我有此类方法的示例:http://brentdacodemonkey.wordpress.com/2012/08/02/local-file-cache-in-windows-azure/
关于asp.net-mvc - 在 MVC 文件下载中提供来自另一个流源的流转发对性能是否有危险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21855433/
我是一名优秀的程序员,十分优秀!