s-yoshiki
1/29/2018 - 4:46 PM

images upload using Lambda

images upload using Lambda


"use strict";

var AWS = require("aws-sdk");
var DOC = require("dynamodb-doc");
var s3 = new AWS.S3();


exports.handler = (event, context, callback) => {
    
    
    //imageのデコード
    let requestImage = Buffer.from(event.body, 'base64')
    var imageName = getUniqueString();
    var imageStatus = putUserImagesOnBucket(requestImage,imageName+".png");
    
    if(imageStatus.status === 200){
        console.log("success");
    }else{
        console.log("error");
    }
    
    callback(null, (function(){
        var obj = {
            "id":0,
            "name":"y shinagawa",
            "genre":"basketball",
            "genre_cd" : 0,
            "image" : "test.png",
            "match_rate" : 80.000001,
            "description" : "test test test test test test"
        };
        return obj; 
    })());
};


//
function putUserImagesOnBucket(image,imageName){
    s3.putObject({
        Body: image,
        Bucket: 'my-bucket',
        ContentType: 'image/png',
        Key: imageName
    }).promise().then((result) => {
        return {"result":result,"status": 200};
    }).catch((err) => {
        return {"result":err,"status": 500};
    });
}

function getUniqueString(){
    //....
    return "unique_string";
}