我正在使用Nodejs流从S3下载文件,并将其作为可写流直接传输到本地文件夹。保存本地文件后,我会做一些额外的处理,将本地文件重新调整为多个版本并重新上传到S3。错误:随机出现的spawn ENONT(流相关)
以下代码正确地从S3下载文件并存储在本地文件夹中。我已经证实了这个作品。
var readable = request(path)
, writable = fs.createWriteStream('files/images/' + fileName);
var localPath = 'files/images/' + fileName;
winston.log('info', "About to start download: " + asset.fileType);
readable.pipe(writable)
//once the file is saved, start processing it
.on('error', function(error){
winston.log('error', error);
})
.on('finish', function() {
winston.log('info', "file downloaded");
series(localPath, sizesKey.shift(), respond);
readable.end();
writable.end();
}).on('error', function(error){
winston.log('error', error);
});
当我在我的本地机器上运行我的脚本,一切工作正常,我的脚本的其余部分仍然平安无事。
但是,从具有Node v.10.10的Amazon EC2 LINUX运行时,上面的代码运行后会引发下面的错误,但并不总是在同一时间。例如,在重新调整大小,成功调整大小或甚至在上传S3时,可能会出现错误,这些错误全部发生在完成上述代码之后。
我的猜测是,我没有正确关闭流,它只是关上我的门可以这么说。尽管如此,我现在在黑暗中射击。
以下是错误:
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)