How to encrypt file using express multer

左心房为你撑大大i 提交于 2019-12-12 03:57:21

问题


By having these simple few lines of code I've got file saved on server.

router.post('/upload',  upload.single('file'), function(req: Request, res: Response, next: Function) {
    console.log(req.file);
    res.json({ success: true, message: 'Uploaded' });
});

I want to encrypt the file before it is get saved.

Is there any way I can do that?


回答1:


  • Multer provides a rich set of events which can give you better
    control over your file uploads.

Therefore, the order of execution is:

  1. onParseStart
  2. onFileUploadStart/onFileUploadData...
  3. onFileUploadComplete
  4. onParseEnd

    • for encrypting we can use file-encryptor node module.

So,in your case your encrypting proccess should be in onFileUploadComplete by doing something like this:

    var fs = require('fs');       
    var encryptor = require('file-encryptor');
    var key = 'My Super Secret Key';          
    app.use(multer({      
            onFileUploadComplete: function (file) {
                 console.log(file.fieldname + ' uploaded to  ' + file.path);
             // Encrypt file.
               encryptor.encryptFile(file, 'encryptedFile.dat', key, function(err) {
                  // Encryption complete.remove original file
                   fs.unlink(file);
                         });
                       }
                   }));


来源:https://stackoverflow.com/questions/35449630/how-to-encrypt-file-using-express-multer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!