putobject nodejs aws node.js express amazon-s3 multer

node.js - nodejs - s3 upload javascript sdk



Nodo JS AWS S3 archivo de carga. Cómo obtener una respuesta de URL pública (1)

Use upload lugar de putObject . Se devolverá la url pública en la clave de ubicación.

Estoy cargando un archivo a Amazon S3 usando el SDK de Nodo.

Las cargas de archivos funcionan bien, pero quiero que la url pública del archivo se envíe al cliente.

En el momento la respuesta que obtengo es:

Successfully uploaded data { ETag: ''"957cd1a335adf5b4000a5101ec1f52bf"'' }

Aquí está mi código. Estoy usando un servidor Node Express y Multer para manejar las subidas.

app.use(multer({ // https://github.com/expressjs/multer dest: ''./public/uploads/'', limits : { fileSize:100000 }, rename: function (fieldname, filename) { var time = new Date().getTime(); return filename.replace(//W+/g, ''-'').toLowerCase() + time; }, onFileUploadData: function (file, data, req, res) { // file : { fieldname, originalname, name, encoding, mimetype, path, extension, size, truncated, buffer } var params = { Bucket: creds.awsBucket, Key: file.name, Body: data, ACL: ''public-read'' }; var s3 = new aws.S3() s3.putObject(params, function (perr, pres) { if (perr) { console.log("Error uploading data: ", perr); } else { console.log("Successfully uploaded data", pres); } }); } })); app.post(''/upload-image'', function(req, res){ if(req.files.file === undefined){ res.send("error, no file chosen"); } });