Я застрял в чем-то, что я не могу решить. Я загружаю файл и получаю его через req.files . Я добавил middleware , который загружает файл на S3. Я попробовал все, но не могу этого сделать. Загрузка в S3 работает нормально, но не сохраняет файл по локальному пути. Когда я пытаюсь выполнить fs.writeFile , он сохраняет поврежденный файл.
Может ли кто-нибудь мне помочь?
функция промежуточного программного обеспечения
uploadToS3bucket: (path) => {
return multer(
{
storage: multerS3({
s3: s3,
acl: 'public-read',
bucket: AWS_BUCKET_NAME,
contentType: multerS3.AUTO_CONTENT_TYPE,
metadata: function (req, file, cb) {
cb(null, {fieldName: file.fieldname});
},
key: function (req, file, cb) {
const params = Object.keys(req.params).map(key => {
return req.params[key]
}).join('/');
const key = path + '/' + params + (params.length > 0 ? '/' : '') + shortUUID.generate() + "-" + file.originalname;
cb(null, key)
}
})
}
)
}
маршрут
router.post('/resume', uploadToS3bucket('temp').fields([
{name: 'resume', maxCount: 1}
]), resumeCtrl.getUserResume);
я пытался
// in metadata function
fs.writeFile('python/resume_parser/data/input/resume/' + file.originalname, file, (err) => {
if (err) throw err;
});
и
request({uri: 'http://localhost:3000/v1/user/resume', headers: { 'Content-type' : 'applcation/pdf', 'encoding': 'binary' }} , function (error, response, body) {
if (!error) {
fs.writeFile("python/resume_parser/data/input/resume/"+ file.originalname, body , function (err) {
});
}
})
он сохраняет PDF, но он поврежден. Кто-нибудь может мне помочь? спасибо