Как сохранить pdf файл на s3 и локально в node js - PullRequest
0 голосов
/ 22 января 2020

Я застрял в чем-то, что я не могу решить. Я загружаю файл и получаю его через 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, но он поврежден. Кто-нибудь может мне помочь? спасибо

...