在我开发的网络应用程序中,用户可以选择通过浏览器下载大文件。这些文件可以存储在不同的远程存储中,例如 Amazon S3。如果文件下载花费了超过几分钟的时间,那么由于各种原因在服务器端跟踪它的进度会很方便。
因此,Web 应用程序和 node.js API 位于一个地方,文件可以位于任何地方。我在想的是通过node.js代理文件下载。所以它看起来像 --> 用户在 web 应用程序上单击文件下载按钮 --> 节点向 S3 请求文件并将其流式传输给用户并更新数据库以跟踪进度,因为文件大小和发送的数据是已知的。
我想知道的:
- 这在性能方面是否合理?数百个并行下载会杀死普通服务器吗?
- 如何使用节点处理多部分下载?
- 这个问题有更好的解决方案吗?
非常感谢你的回答 !