UNPKG

7.12 kBSource Map (JSON)View Raw
1{"version":3,"file":"_UploadApi.js","names":[],"sources":["../../src/_/_UploadApi.js"],"sourcesContent":["// import multer from 'multer';\n// import fs from 'fs';\n// import nodepath from 'path';\n// import random from 'lodash/random';\n// import get from 'lodash/get';\n// import aws from 'aws-sdk';\n// import multerS3 from 'multer-s3';\n// import Api from '@lskjs/server-api';\n\n// export default class UploadApi extends Api {\n// getFileType(file) {\n// if (file && file.originalname) {\n// const res = file.originalname.match(/\\.([0-9a-z]+)(?:[\\?#]|$)/i); //eslint-disable-line\n// if (res && res[1]) {\n// return res[1];\n// }\n// }\n// return null;\n// }\n// // @TODO real file name\n// // const getFileName = (file) => {\n// // return file.originalname;\n// // };\n\n// createDir(targetDir) {\n// if (!fs.existsSync(targetDir)) {\n// targetDir.split('/').forEach((dir, index, splits) => {\n// const parent = splits.slice(0, index).join('/');\n// const dirPath = nodepath.resolve(parent, dir);\n// if (!fs.existsSync(dirPath)) {\n// fs.mkdirSync(dirPath);\n// }\n// });\n// }\n// }\n\n// getFilePath(req, file) {\n// const { e403 } = this.app.errors;\n// const { config } = this;\n// let { path = 'storage' } = config;\n\n// if (req.user && req.user._id) {\n// path += `/${req.user._id}`;\n// } else if (config.allowGuest) {\n// path += '/general';\n// } else {\n// throw e403('Guest can not upload files');\n// }\n\n// let fileName;\n// if (config.allowSetFilename) {\n// fileName = file.originalname;\n// } else {\n// fileName = `${Date.now()}_${random(0, 1000)}.${this.getFileType(file)}`;\n// }\n// const { prefix = '' } = config;\n// const path2 = `${path}/${prefix}${fileName}`;\n// // console.log({ path2 });\n\n// return path2;\n// }\n\n// getS3Storage() {\n// return multerS3({\n// s3: this.s3,\n// bucket: this.config.s3.bucket,\n// contentType: multerS3.AUTO_CONTENT_TYPE,\n// acl: 'public-read',\n// key3: (req, file, cb) => {\n// const filename = nodepath.parse(file.originalname);\n// // console.log({ req, file });\n// // console.log(`avatar_${req.user._id}.${filename.ext}`);\n// cb(null, `avatar_${req.user._id}.${filename.ext}`);\n// },\n// key: async (req, file, cb) => {\n// let filename;\n// try {\n// // console.log('req, file', file);\n// filename = this.getFilePath(req, file);\n// // console.log('filename', filename);\n// filename = filename.replace(/\\//g, '__');\n// // console.log('filename2', filename);\n// } catch (err) {\n// return cb(err);\n// }\n// return cb(null, filename);\n// },\n// });\n// }\n\n// getDiskStorage() {\n// // const config = this.app.config.upload;\n// const storage = multer.diskStorage({\n// destination: (req, file, cb) => {\n// // console.log('destination');\n// let path;\n// let dirname;\n// try {\n// path = this.getFilePath(req, file);\n// dirname = path.split('/').slice(0, -1).join('/');\n// this.createDir(dirname);\n// } catch (err) {\n// return cb(err);\n// }\n// return cb(null, dirname);\n// },\n// filename: (req, file, cb) => {\n// let path;\n// let filename;\n// try {\n// path = this.getFilePath(req, file);\n// [filename] = path.split('/').reverse();\n// } catch (err) {\n// return cb(err);\n// }\n// // console.log('filename', filename);\n// // this.createDir(filename);\n// return cb(null, filename);\n// },\n// });\n// return storage;\n// }\n\n// getMulter() {\n// const { e400 } = this.app.errors;\n// const config = this.app.config.upload;\n// const fileFilter = (req, file, cb) => {\n// if (Array.isArray(config.mimetypes)) {\n// if (config.mimetypes.indexOf(file.mimetype) === -1) {\n// return cb(e400('You are not allowed to upload files with this extension'));\n// }\n// }\n// return cb(null, true);\n// };\n\n// const limits = {};\n// if (config.maxSize) {\n// const fileSize = parseFloat(config.maxSize) * 1024 * 1024;\n// limits.fileSize = fileSize;\n// }\n// // console.log('getMulter', {\n// // storage: this.storage,\n// // limits,\n// // fileFilter,\n// // });\n// return multer({\n// storage: this.storage,\n// limits,\n// fileFilter,\n// });\n// }\n\n// getApi() {\n// const config = this.app.config.upload;\n// function processFile(file) {\n// if (config.s3) {\n// return {\n// name: file.fieldname,\n// url: file.location,\n// path: file.location,\n// relative: `/${file.key}`,\n// mimetype: file.contentType,\n// filename: file.originalname,\n// };\n// }\n\n// return {\n// name: file.fieldname,\n// url: `${config.url}/${file.path}`,\n// path: `/${file.path}`,\n// relative: `/${file.path}`,\n// mimetype: file.mimetype,\n// filename: file.originalname,\n// };\n// }\n\n// const api = this.app.asyncRouter();\n// api.post('/many', this.multer.any(), async (req) => {\n// const { files = [] } = req;\n// return files.map(processFile);\n// });\n\n// // const upload = multer();\n// // api.post('/', this.multer.single('file'), async (req) => {\n// api.post('/', this.multer.single('file'), async (req) => {\n// const { file } = req;\n// if (!file) {\n// throw new Err('!file');\n// }\n// return processFile(file);\n// });\n// return api;\n// }\n\n// async run() {\n// this.app.app.use('/api/module/upload', this.getApi());\n// }\n// }\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA"}
\No newline at end of file