2

I have below object.

export const multerOptions = {
    storage: diskStorage({
        destination: multerConfig.dest,
        filename: (_req: any, file: any, cb: any) => {
            /* istanbul ignore next */
            cb(null, `${uuid()}${extname(file.originalname)}`);
        },
    }),
};

when I am printing multerOptions.storage it is returning below.

   diskStorage({
        destination: multerConfig.dest,
        filename: (_req: any, file: any, cb: any) => {
            /* istanbul ignore next */
            cb(null, `${uuid()}${extname(file.originalname)}`);
        },
    }),
.

is there anyway I can access this filename or destination

Shruti sharma
  • 199
  • 6
  • 21
  • 67

1 Answers1

4

This one is for single file upload

 /**
 * Module for geting image from s3 cloud server
 */
exports.upload = multer({
    storage: multerS3({
        s3: s3,
        bucket: function (req, file, cb) {
            const path = process.env.AWS_BUCKET_NAME;
            cb(null, path || 'uploads/');
        },
        acl: 'authenticated-read',
        // acl: 'public-read',
        key: function (req, file, cb) {

            console.log("file========", req);
            // console.log(req.path.split('/')[1]);
            // console.log(path.parse(file.originalname).name.replace(" ", "-"));
            // console.log(Date.now() + path.parse(file.originalname).ext);
            // req.path.split('/')[1] ===== Sub-Folder
            // path.parse(file.originalname).name.replace(" ", "-") + Date.now() + path.parse(file.originalname).ext ===== File name
            cb(null, req.path.split('/')[1]+'/'+path.parse(file.originalname).name.replace(" ", "-") + Date.now() + path.parse(file.originalname).ext);
        }
    })
}).single('file');

For Multiple file upload

/**
 * Module for geting image from s3 cloud server
 */
 exports.uploadmultiple = multer({
    storage: multerS3({
        s3: s3,
        bucket: function (req, file, cb) {
            const path = process.env.AWS_BUCKET_NAME;
            cb(null, path || 'uploads/');
        },
        acl: 'authenticated-read',
        // acl: 'public-read',
        key: function (req, file, cb) {

            console.log(req.path.split('/')[1]);
            console.log(path.parse(file.originalname).name.replace(" ", "-"));
            console.log(Date.now() + path.parse(file.originalname).ext);
            // req.path.split('/')[1] ===== Sub-Folder
            // path.parse(file.originalname).name.replace(" ", "-") + Date.now() + path.parse(file.originalname).ext ===== File name
            cb(null, req.path.split('/')[1]+'/'+path.parse(file.originalname).name.replace(" ", "-") + Date.now() + path.parse(file.originalname).ext);
        }
    })
}).array('files', 2);

You can get more info over HERE

Tanjin Alam
  • 1,728
  • 13
  • 15