Subir múltiples imágenes – NodeJS y Amazon S3

He podido configurar un proceso para cargar una sola imagen a la vez utilizando NodeJS / Express / Amazon S3 / Multer. Funciona perfectamente. He estado intentando cambiar el código para permitir que los usuarios suban más de una imagen a la vez. Hasta ahora he tenido muy poco éxito. ¿Cómo cambiaría mi código a continuación para permitir que se carguen varias imágenes a la vez? ¡Gracias!

aws.config.update({ secretAccessKey: '*****************', accessKeyId: '******', region: 'us-east-2' }); var s3 = new aws.S3(); var upload = multer({ storage: multerS3({ s3: s3, bucket: 'myfiles', key: function (req, file, cb) { var fileExtension = file.originalname.split(".")[1]; var path = "uploads/" + req.user._id + Date.now() + "." + fileExtension; cb(null, path); } }) }); router.post("/", upload.array('image', 1), function(req, res, next){ var filepath = undefined; if(req.files[0]) { filepath = req.files[0].key; }...... 

has hecho la parte difícil, todo lo que tienes que hacer es modificar la entrada del archivo html para que acepte varios archivos, como así

  

y cambie el número de archivos en la matriz al número máximo de archivos que desea cargar

desde

 upload.array('image', 1) 

a

 upload.array('image', x) 

donde (x) es el número máximo de archivos por carga

EDIT1: actualización

Aquí hay una especie de ejemplo completo y para evitar “un problema de entidad demasiado grande”

 var express = require("express"); var app = express(); var multer = require('multer'); var cookieParser = require('cookie-parser'); var path = require('path'); var router = express.Router(); app.use("/", router); app.use(bodyParser.json({limit: "50mb"})); app.use(cookieParser()); var urlencodedParser = bodyParser.urlencoded({ extended: true, parameterLimit: 50000 }); // in case u want to c the requsted url router.use(function(req, res, next) { console.log('Request URL: ', req.originalUrl); next(); }); //the files will b uploaded to folder name uploads, html file input name is uploadedFile app.post('/your/route', urlencodedParser, function(req, res) { var storage = multer.diskStorage({ destination: function(req, file, callback) { callback(null, './uploads'); }, filename: function(req, file, callback) { var fname = file.fieldname + '-' + Date.now() + path.extname(file.originalname); callback(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname)); } }); var upload_photos = multer({ storage: storage }).array('uploadedFile', 3); upload_photos(req, res, function(err) { // uploading files }); });