【发布时间】:2018-12-10 21:04:01
【问题描述】:
我有一个 AWS S3 对象和一个在其上创建的读取流,如下所示:
const s3 = new AWS.S3();
const readStream = s3
.getObject(params)
.createReadStream()
.on('error', err => {
// do something
});
现在,当流在 120 秒后没有被读取到末尾(例如,流被客户端中止)时,error 事件被触发:TimeoutError: Connection timed out after 120000ms
如何关闭流(或整个 S3 对象)?
我尝试了readStream.destroy() 记录的here,但它不起作用。
【问题讨论】:
-
你可以使用
readStream.close()或.on('close', function (err) { console.log("closing stream.")}) -
谢谢,但是当我使用
readStream.close()时,我收到TypeError: readStream.close is not a function错误 -
也许你使用的是最新版本的node,那么
readStream.destroy()是唯一的方法。如果需要尝试.end(),但我不推荐它。 -
您找到解决方案了吗?我正在尝试运行
end(),但没有影响。在我的情况下,处理文件为 600Mb。
标签: node.js amazon-web-services amazon-s3