Uploading image to amazon s3 using multer-s3 nodejs

前端 未结 6 1910
遥遥无期
遥遥无期 2020-12-04 15:45

I am trying to upload an image to amazon s3 using multer-s3, but I am getting this error:

TypeError: Expected opts.s3 to be object node

6条回答
  •  自闭症患者
    2020-12-04 16:43

    Complete and working Node Cheat | Upload to s3 using multer-s3 available.

    Code:

    var express = require('express'),
        aws = require('aws-sdk'),
        bodyParser = require('body-parser'),
        multer = require('multer'),
        multerS3 = require('multer-s3');
    
    aws.config.update({
        secretAccessKey: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
        accessKeyId: 'XXXXXXXXXXXXXXX',
        region: 'us-east-1'
    });
    
    var app = express(),
        s3 = new aws.S3();
    
    app.use(bodyParser.json());
    
    var upload = multer({
        storage: multerS3({
            s3: s3,
            bucket: 'bucket-name',
            key: function (req, file, cb) {
                console.log(file);
                cb(null, file.originalname); //use Date.now() for unique file keys
            }
        })
    });
    
    //open in browser to see upload form
    app.get('/', function (req, res) {
        res.sendFile(__dirname + '/index.html');//index.html is inside node-cheat
    });
    
    //use by upload form
    app.post('/upload', upload.array('upl',1), function (req, res, next) {
        res.send("Uploaded!");
    });
    
    app.listen(3000, function () {
        console.log('Example app listening on port 3000!');
    });
    

    For complete repo:

    Clone node-cheat express_multer_s3, run node app followed by npm install express body-parser aws-sdk multer multer-s3.

    Happy Helping!

提交回复
热议问题