How do I specify the download directory in multer-S3 for an AWS-S3 bucket?
I am using express + multer-s3 to upload files to AWS S3 service.
Using the following code, I was able to load files into the S3 Bucket , but right into the bucket.
I want them to be loaded into a folder inside the bucket.
I was unable to find a way to do this.
Here is the code
AWS.config.loadFromPath("path-to-credentials.json");
var s3 = new AWS.S3();
var cloudStorage = multerS3({
s3: s3,
bucket: "sample_bucket_name",
contentType: multerS3.AUTO_CONTENT_TYPE,
metadata: function(request, file, ab_callback) {
ab_callback(null, {fieldname: file.fieldname});
},
key: function(request, file, ab_callback) {
var newFileName = Date.now() + "-" + file.originalname;
ab_callback(null, newFileName);
},
});
var upload = multer({
storage: cloudStorage
});
router.post("/upload", upload.single('myFeildName'), function(request, response) {
var file = request.file;
console.log(request.file);
response.send("aatman is awesome!");
});
+3
source to share
1 answer
S3 doesn't always have folders (see http://docs.aws.amazon.com/AmazonS3/latest/UG/FolderOperations.html ). It will simulate folders by adding lines separated by / on your filename.
eg.
key: function(request, file, ab_callback) {
var newFileName = Date.now() + "-" + file.originalname;
var fullPath = 'firstpart/secondpart/'+ newFileName;
ab_callback(null, fullPath);
},
+4
source to share