Search
 
SCRIPT & CODE EXAMPLE
 
CODE EXAMPLE FOR JAVASCRIPT

nestjs multer file upload delay

export class Multer {
	static upload = multer({
		storage: multerS3({
			s3: new aws.S3(),
			bucket: process.env.AWS_BUCKET_NAME,
			contentType: multerS3.AUTO_CONTENT_TYPE,
			serverSideEncryption: 'AES256',
			// acl: 'public-read',
			key(request: Request, file: Express.Multer.File, done: any) {
				const fileName: string = `${Date.now().toString()} - ${file.originalname}`
				done(null, fileName)
			}
		}),
		storage: multer.diskStorage({
			destination(_: Request, file: Express.Multer.File, done: any) {
				let linux: string = `${process.env.IMG_DIR}`
				let window: string = process.env.TEMP || ''

				if (!file) {
					done(new Error('Uploading file failed'), null)
				} else {
					if (process.platform === 'win32') {
						if (fs.existsSync(window)) {
							done(null, window)
						} else {
							done(new Error('No such file directory').message, null)
						}
					} else {
						if (fs.existsSync(linux)) {
							done(null, linux)
						} else {
							done(new Error('No such file directory').message, null)
						}
					}
				}
			},
			filename(_, file, done: any) {
				if (!file) done(new Error('Get file upload failed'), null)
				const fileName: string = `${Date.now().toString()} - ${file.originalname}`
				done(null, fileName)
			}
		}),
		fileFilter(req: Request, file: Express.Multer.File, done: any) {
			if (!mimeTypeSupport(file.mimetype)) throw new TypeError('mimetype not supported')
			if (file.size >= 5242880) throw new TypeError('maximum file or image size must be 5 MB or under 5 MB')

			const fileName: string = `${Date.now().toString()} - ${file.originalname}`
			done(null, fileName)
		},
		limits: { fileSize: 5242880 }
	}).array('upload', 2)
}
 
PREVIOUS NEXT
Tagged: #nestjs #multer #file #upload #delay
ADD COMMENT
Topic
Name
1+4 =