我一直在研究这个问题的答案,位于此处如何使套接字成为流?在 imagemagick 之后将 https 响应连接到 S3。根据 loganfsmyth 的建议,我评论了 req.end(image) 行,但是当我尝试上传文件时,服务器只是超时。当我取消注释 req.end(image) 行时,我遇到了类似的行为,但图像成功上传到 S3 除外。如果取消注释 req.end(image) 行是正确的,有人可以为我澄清哪种方式是正确的,向浏览器发送响应以防止它超时的最佳方式是什么?
https.get(JSON.parse(queryResponse).data.url,function(res){
graphicsmagick(res)
.resize('50','50')
.stream(function (err, stdout, stderr) {
ws. = fs.createWriteStream(output)
i = []
stdout.on('data',function(data){
i.push(data)
})
stdout.on('close',function(){
var image = Buffer.concat(i)
var req = S3Client.put("new-file-name",{
'Content-Length' : image.length
,'Content-Type' : res.headers['content-type']
})
req.on('response',function(res){ //prepare 'response' callback from S3
if (200 == res.statusCode)
console.log('it worked')
})
//req.end(image) //send the content of the file and an end
})
})
})