在AWS Lambda中使用Node.js在s3存储桶中上传多个图像?

时间:2019-12-21 23:56:56

标签: node.js aws-lambda

我正在使用AWS lambda函数和nodejs。我试图在s3存储桶中插入多个图像。找到以下内容供您参考。

var AWS = require('aws-sdk');
var fileType = require('file-type');
var bucket = 'testing';
var s3 = new AWS.S3();


exports.handler = (event, context, callback) => {
    var Userid = event['userid'];
    var media = event['media'];

    media.forEach(function(eachrecord){
        var fileBuffer = Buffer.from(eachrecord, 'base64');
        var fileTypeInfo = fileType(fileBuffer);
        var randomstring = require("randomstring");
        var fileName = Userid+'/'+'media/'+`${randomstring.generate()}.${fileTypeInfo.ext}`;
        var ext = fileTypeInfo.ext;

        var params = {
            Body: fileBuffer,
            Key: fileName,
            Bucket: bucket,
            ContentEncoding: 'base64',
            ContentType: fileTypeInfo.mime
        };
        s3.upload(params, function(err, data){
        if(err)
            {
             callback(err, null);
            }
        else
            {
            let response= {body: JSON.stringify(data.Location)};
            let mediaurl =response.body;
            console.log(mediaurl);
            }
        });
    });
context.succeed('done');    
};    

在媒体中,我已在事件中发送了多个base64编码数组值。但是如何实现forloop概念以及媒体将数组值插入s3存储桶?

0 个答案:

没有答案