eletrotupi / tcc/ api/src/services/avatar.tsaa9f316078c22a3cd681d3cef4743472fe1d1dad
593 B | 24 lines Raw
1
import s3 from '@app/lib/s3';
2
import multerBase from 'multer';
3
import multerS3 from 'multer-s3';
4
import path from 'path';
5
import crypto from 'crypto';
6

7
const avatarMulter = multerBase({
8
  storage: multerS3({
9
    s3,
10
    acl: "public-read",
11
    bucket: process.env.S3_BUCKET!,
12
    metadata: function (req, file, cb) {
13
      cb(null, { fieldName: file.fieldname });
14
    },
15
    key: function (req, file, cb) {
16
      const ext = path.extname(file.originalname).slice(1);
17
      const uuid = crypto.randomUUID();
18

19
      cb(null, `avatars/${uuid}.${ext}`)
20
    }
21
  })
22
})
23

24
export default avatarMulter;