-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathuploadMiddleware.js
31 lines (29 loc) · 1001 Bytes
/
uploadMiddleware.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var crypto = require("crypto");
var multer = require("multer");
var path = require("path");
var fs = require('fs');
//const multerS3 = require("multer-s3");
//~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.
//for upload Image
//destination: Indicates where you want to save your files
//filename: Indicates how you want your files named.
var storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, path.join(__dirname + "/uploads"));
},
filename: (req, file, cb) => {
//TODO: choosing the name is better to be via content hash rather than this (Important)
var bytes = file.fieldname + "-" + Date.now() + "-" + file.originalname;
//var byt = Buffer.from(req.body.image, 'base64');
//create the SHA256 hash of the random bytes
var checksum = crypto
.createHash("SHA256")
.update(bytes)
.digest("hex");
cb(null, checksum);
}
});
var upload = multer({
storage: storage
});
module.exports = upload