Como acessar o arquivo carregado da multer?
É possível fazer upload de uma imagem paraS3
. Agora, se o arquivo selecionado for.gif
, Quero poder converter o.gif
arquivo para.mp4
e faça upload do arquivo convertido paraS3
. Eu sou capaz de converter um.gif
para.mp4
comffmpeg
somente se eu der o caminho do arquivo. Como acesso o arquivo carregado emMulter
? Abaixo está o meu código:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var aws = require('aws-sdk');
var multer = require('multer');
var multerS3 = require('multer-s3');
var s3 = new aws.S3();
var ffmpeg = require('fluent-ffmpeg');
var upload = multer({
storage: multerS3({
s3: s3,
bucket: 'myBucket',
key: function (req, file, cb) {
console.log(file);
var extension = file.originalname.substring(file.originalname.lastIndexOf('.')+1).toLowerCase();
if(extension=="gif"){
console.log("Uploaded a .gif file");
ffmpeg(file) //THIS IS NOT WORKING
.setFfmpegPath("C:\\ffmpeg\\bin\\ffmpeg.exe")
.output('./outputs/2.mp4') //TRYING TO UPLOAD LOCALLY, WHICH FAILS
.on('end', function() {
console.log('Finished processing');
})
.run();
}
cb(null, filename);
}
})
});
Estou tentando acessar o arquivo enviado assim:ffmpeg(file)
Desde afile
é um argumento passado nomulter
função.
Meu formulário:
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file"> <br />
<input type="submit" value="Upload">
</form>
Em que parte do processo eu converto o arquivo?
Por favor ajude. Muito Obrigado.