Wil*_*oss 5 file-upload amazon-web-services amazon-elb angularjs
我有一个应用程序,用户可以使用angular-file-upload.js上传PDF
该库不支持文件分块:https://github.com/nervgh/angular-file-upload/issues/41
我的弹性负载平衡器配置为具有10秒的空闲超时,应用程序的其他部分依赖于保留此参数.
问题是如果文件上载时间超过10秒,则用户在浏览器中收到504网关超时并显示错误消息.但是,文件仍会在一段时间后到达服务器.
如何忽略或不向用户显示来自ELB的此504网关超时?还有另一种解决这个问题的方法吗?
您遇到的问题是ELB总是要关闭连接,除非它从您的服务器获得一些流量.请参阅以下AWS 文档.对于ALB或Classic负载均衡器,它的行为相同.
默认情况下,Elastic Load Balancing将两个连接的空闲超时设置为60秒.因此,如果实例在请求处于运行状态时至少每60秒发送一些数据,则负载均衡器可以关闭连接.要确保文件上载等冗长的操作有时间完成,请在每个空闲超时周期结束前发送至少1个字节的数据,并根据需要增加空闲超时时间的长度.
因此,为了解决这个问题,您有两种选择:
编辑:第三个选项感谢@colde提出有效点,您可以完全解决负载均衡器问题.这样做的另一个好处是可以释放您的服务器资源,这些资源会被冗长的上传所困扰.在我们的实现中,我们使用预先签名的URL来安全地实现此目的.
| 归档时间: |
|
| 查看次数: |
610 次 |
| 最近记录: |