【发布时间】:2015-07-28 14:12:55
【问题描述】:
我正在尝试将图像上传到 S3,但是当我调用 s3.putObject(params, callback) 时,我的回调永远不会被调用,也不会记录任何错误。
以下是相关代码:
var params = {
Key: key,
Body: imageData,
ContentLength: imageData.byteCount,
ContentType: contentType,
};
this.s3.putObject(params, function(err, data) {
console.log('here');
if (err) {
callback(err);
return;
}
callback(null, key);
});
params 是{
Key: 'e2f99bf3a321282cc7dfaef69fe8ca62.jpg',
Body: {imageData parsed from request using node-multiparty},
ContentLength: 27802,
ContentType: 'image/jpeg',
}
我已经验证 this.s3 是有效的,并且 typeof this.s3.putObject 的功能符合预期。
【问题讨论】:
-
您可能会通过安装并要求 npm 中的
nock模块获得一些见解,该模块将准确打印出请求的 URL。如果程序挂起等待回调,则可能是防火墙忽略了 TCP 连接尝试。您是否让程序挂起几分钟以查看它是否最终超时并调用回调? -
您的程序是否在异步事件可以返回值之前完成执行?请参阅 AWS Lambda 的类似主题:stackoverflow.com/questions/28449363/…