如何使用Express multer加密文件 [英] How to encrypt file using express multer
本文介绍了如何使用Express multer加密文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
通过这些简单的几行代码,我已经将文件保存在服务器上.
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?
推荐答案
- Multer提供了丰富的事件集,可以为您提供更好的服务
控制文件上传. - Multer provides a rich set of events which can give you better
control over your file uploads. - onParseStart
- onFileUploadStart/onFileUploadData ...
- onFileUploadComplete
-
onParseEnd
- onParseStart
- onFileUploadStart/onFileUploadData...
- onFileUploadComplete
onParseEnd
- 对于加密,我们可以使用 文件加密器 节点模块.
因此,执行顺序为:
因此,在这种情况下,您应该通过以下操作将加密过程保存在 onFileUploadComplete 中:
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);
});
}
}));
这篇关于如何使用Express multer加密文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文