Node.js 如何编写一个简单的lambda函数在AmazonS3中上传pdf?
我是node.js的新开发人员,我想在node.js中编写一个小lambda函数,将pdf文件(从硬盘)上传到AmazonS3存储桶 这是我的密码:Node.js 如何编写一个简单的lambda函数在AmazonS3中上传pdf?,node.js,amazon-web-services,amazon-s3,lambda,Node.js,Amazon Web Services,Amazon S3,Lambda,我是node.js的新开发人员,我想在node.js中编写一个小lambda函数,将pdf文件(从硬盘)上传到AmazonS3存储桶 这是我的密码: // dependencies var util = require('util'); var fs = require('fs'); exports.handler = function (req, res) { var file = req.files.file; fs.readFile("C:\\Users\\zack\\
// dependencies
var util = require('util');
var fs = require('fs');
exports.handler = function (req, res) {
var file = req.files.file;
fs.readFile("C:\\Users\\zack\\Downloads\\test.pdf", function (err, data) {
if (err) throw err; // Something went wrong!
var s3bucket = new AWS.S3({params: {Bucket: 'myBucket3'}});
s3bucket.createBucket(function () {
var params = {
Key: file.originalFilename, //file.name doesn't exist as a property
Body: data
};
s3bucket.upload(params, function (err, data) {
// Whether there is an error or not, delete the temp file
fs.unlink("C:\\Users\\zack\\Downloads\\test.pdf", function (err) {
if (err) {
console.error(err);
}
console.log('Temp File Delete');
});
console.log("PRINT FILE:", file);
if (err) {
console.log('ERROR MSG: ', err);
res.status(500).send(err);
} else {
console.log('Successfully uploaded data');
res.status(200).end();
}
});
});
});
};
lambda函数向我显示以下错误消息:
"errorMessage": "RequestId: 05024c81-f44b-11e6-a45e-57b13036ad96 Process exited before completing request"
还有云手表:
START RequestId: e66a7653-f44b-11e6-8b1a-c511605a533b Version: $LATEST
2017-02-16T13:29:11.133Z e66a7653-f44b-11e6-8b1a-c511605a533b TypeError: Cannot read property 'file' of undefined
at exports.handler (/var/task/invoices3/invoices3.js:17:25)
END RequestId: e66a7653-f44b-11e6-8b1a-c511605a533b
REPORT RequestId: e66a7653-f44b-11e6-8b1a-c511605a533b Duration: 27.82 ms Billed Duration: 100 ms Memory Size: 1024 MB Max Memory Used: 23 MB
RequestId: e66a7653-f44b-11e6-8b1a-c511605a533b Process exited before completing request
你能告诉我哪里出了问题吗??我根本不擅长node.js
提前谢谢你
进程在完成请求之前退出
您收到此消息是因为您从未通知Lambda函数已完成。完成后,您需要调用context.succeed()
函数,或者使用较新的callback()
方法,并在完成后调用该方法