2017-06-29 37 views
0

私のLambdaは、自分の体から画像の画像バイナリデータを受信して​​います(event.body)。AWS LambdaからS3へのバイナリ形式のAPIゲートウェイを経由した画像のアップロード

S3にアップロードしようとしましたが、エラーをスローしませんが、画像をアップロードして画像ビューアを開いてみると、アップロードされた画像が正しく表示されません。

また、アップロードされた画像のUR1を取得してユーザーに返す必要があります。

助けてください!

module.exports.uploadImage = (event, context, callback) => { 
    var buf = new Buffer(new Buffer(event.body).toString('base64').replace(/^data:image\/\w+;base64,/, ""),'base64'); 
    var data = { 
    Key: Date.now()+"", 
    Body: buf, 
    ContentEncoding: 'base64', 
    ContentType: 'image/png', 
    ACL: 'public-read' 
    }; 
    s3Bucket.putObject(data, function(err, data){ 
     if (err) { 
     console.log(err); 
     console.log('Error uploading data: ', data); 
     } else { 
     console.log('succesfully uploaded the image!'); 
     } 
     callback(null,data); 
    }); 
}; 

答えて

2

イメージをノードバッファとしてS3にアップロードできます。 SDKが変換を行います。

const AWS = require("aws-sdk"); 
var s3 = new AWS.S3(); 

module.exports.handler = (event, context, callback) => { 
    var buf = Buffer.from(event.body.replace(/^data:image\/\w+;base64,/, ""),"base64"); 
    var data = { 
    Bucket: "sample-bucket", 
    Key: Date.now()+"", 
    Body: buf, 
    ContentType: 'image/png', 
    ACL: 'public-read' 
    }; 
    s3.putObject(data, function(err, data){ 
     if (err) { 
     console.log(err); 
     console.log('Error uploading data: ', data); 
     } else { 
     console.log('succesfully uploaded the image!'); 
     } 
     callback(null,data); 
    }); 
}; 
+0

サイドノート、 's3.upload'を使用すると、アップロードされたファイルのURLが得られます.' s3.putObject'は –

関連する問題