nodejs在1次调用S3 / SQS后停止响应

我正在使用aws-sdk模块在nodejs / expressjs中执行一个简单的过程:

  1. 上传文件(使用浏览器表单发布)
  2. 将其发送到AWS S3
  3. 请在AWS SQS中input消息以进一步处理。
  4. 用SQS返回对象响应客户端。

下面的代码完美的工作,但只有一次。 在一个文件的第一个文章后,节点应用程序不再响应其他post或动作(它甚至停止了我用SetInterval(method,10000)运行的任何进程)当我尝试发布第二个文件时,它只是挂起。我重新启动服务器,它只是一个职位工作正常我在WebStorm 5 IDE中运行nodejs-v0.10.9。客户端发送文件后路由到的代码如下 – queueXml:

var fs = require('fs'); var step = require('step'); var AWS = require('aws-sdk'); AWS.config.loadFromPath('./lib/aws/config.json'); var bucketName = 'xxxxxx'; var sqsEndPoint = 'http://xxxx'; exports.queueXml = function(req,res){ var key = getGuid(); step( function readPostedFile(){ fs.readFile(req.files.postedfile.path, this); }, function sendToS3(err, data){ if(err) throw err; var s3Bucket = new AWS.S3({params:{Bucket: bucketName}}); var fileData = {Bucket: bucketName, Key: key, Body: data}; s3Bucket.putObject(fileData,this); }, function sendSQSMessage(err, path){ if(err) throw err; var sqs = new AWS.SQS(); var message = {Bucket:bucketName, Key:key}; sqs.sendMessage({QueueUrl:sqsEndPoint,MessageBody:JSON.stringify(message)},this); }, function end(err, data){ if(err) throw err; res.send(JSON.stringify(data)); } ) }