想要将多行插入存储在s3存储桶中的单个csv文件中。每个帖子表单数据应保存在新行的s3存储桶中的相同csv文件中。目前,新条目将保存为单个文件。
exports.handler = (event, context, callback) => {
var fs = require('fs');
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
var name = event.name
var phonenumber = event.phonenumber
var email = event.email
var gender = event.gender
var message = event.message
var region = event.region
var favfood = event.favfood
var timestamp = Math.floor(Date.now()/1000);
var filename = "phase1_" + timestamp + ".csv"
fs.writeFileSync("/tmp/" + filename, name+ ',' +phonenumber+ ',' +email+ ',' +gender+ ',' +message+ ',' +region+ ',' +favfood);
var body = fs.createReadStream("/tmp/" + filename);
// var base64data = new Buffer(data, 'binary');
s3.putObject({
Bucket: 'mybucket',
Key: filename,
Body:body,
ACL: 'public-read-write'
},function(err, data) {
if (err) {
console.log(err.message);
}
console.log('Successfully uploaded file.');
});
};
答案 0 :(得分:2)
很遗憾,您无法在S3中追加对象,请Refer this。
上传对象后,无法对其进行修改; 您唯一的选择是上传新对象以替换它,但这不符合您的要求。
您可以将条目发送到SQS队列以及队列大小 达到设定的数字,您可以将日志消息一起批处理 并添加为S3存储桶中的对象。这仍然不会令人满意 您要求附加到单个对象。