day 11
This commit is contained in:
Executable
+65
@@ -0,0 +1,65 @@
|
||||
const path = require("path");
|
||||
const aws = require("aws-sdk");
|
||||
const multer = require("multer");
|
||||
const multerS3 = require("multer-s3");
|
||||
|
||||
module.exports = {
|
||||
upload: function (location) {
|
||||
if (process.env.NODE_ENV === "production") {
|
||||
return this.s3_upload(location);
|
||||
} else {
|
||||
return this.local_upload("public/images/uploads");
|
||||
}
|
||||
},
|
||||
s3_upload: function (location) {
|
||||
try {
|
||||
aws.config.update({
|
||||
accessKeyId: process.env.DYNAMIC_CONFIG_AWS_KEY,
|
||||
secretAccessKey: process.env.DYNAMIC_CONFIG_AWS_SECRET,
|
||||
region: process.env.DYNAMIC_CONFIG_AWS_REGION,
|
||||
});
|
||||
|
||||
const s3 = new aws.S3();
|
||||
|
||||
const upload = multer({
|
||||
storage: multerS3({
|
||||
s3: s3,
|
||||
bucket: process.env.DYNAMIC_CONFIG_AWS_BUCKET,
|
||||
acl: "public-read",
|
||||
contentType: multerS3.AUTO_CONTENT_TYPE,
|
||||
key: function (req, file, cb) {
|
||||
cb(null, location + file.originalname);
|
||||
},
|
||||
}),
|
||||
});
|
||||
|
||||
return upload;
|
||||
} catch (error) {
|
||||
console.log("s3_upload => ", error);
|
||||
}
|
||||
},
|
||||
local_upload: function (location) {
|
||||
try {
|
||||
const storage = multer.diskStorage({
|
||||
destination: function (req, file, cb) {
|
||||
cb(null, location);
|
||||
},
|
||||
filename: function (req, file, cb) {
|
||||
req.local_file = path.join(
|
||||
__dirname,
|
||||
"../",
|
||||
"public/images/uploads",
|
||||
file.originalname
|
||||
);
|
||||
cb(null, file.originalname);
|
||||
},
|
||||
});
|
||||
|
||||
const upload = multer({ storage: storage });
|
||||
|
||||
return upload;
|
||||
} catch (error) {
|
||||
console.log("local_upload => ", error);
|
||||
}
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user