如何在s3存储桶中附加csv文件

时间:2017-12-27 08:56:55

标签: amazon-web-services amazon-s3

想要将多行插入存储在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.');

                    });



};

1 个答案:

答案 0 :(得分:2)

很遗憾,您无法在S3中追加对象,请Refer this

上传对象后,无法对其进行修改; 您唯一的选择是上传新对象以替换它,但这不符合您的要求。

  

您可以将条目发送到SQS队列以及队列大小   达到设定的数字,您可以将日志消息一起批处理   并添加为S3存储桶中的对象。这仍然不会令人满意   您要求附加到单个对象。