如何在S3存储桶中添加CSV文件

Akh*_*tla 2 amazon-s3 amazon-web-services

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

                    });



};
Run Code Online (Sandbox Code Playgroud)

Kus*_*yas 5

不幸的是,您不能在S3中附加对象,请参考此内容

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

您可以将条目发送到SQS队列,并且当队列大小达到设置的数量时,可以将日志消息批处理并作为对象添加到S3存储桶中。这仍然不能满足您附加到单个对象的要求。