提交 bf33e75f authored 作者: GOD_ZYX's avatar GOD_ZYX

update

上级 73a4bfff
No preview for this file type
......@@ -11,7 +11,7 @@ const conf = require('../config')
const _ = require('lodash')
const md5 = require('md5-node')
const fs = require('fs')
const path = require('path')
// const path = require('path')
/* 支持 finally函数 */
require('promise.prototype.finally').shim()
......@@ -23,6 +23,11 @@ require('promise.prototype.finally').shim()
/* 通过API统一过拦截器,接口代理转发请求 */
const agentProcessor = () => {
return (req, res) => {
// if (req.path) {
// postDirOperate(req, res)
// return
// }
let timestamp = new Date().getTime()
const signStr = req.headers['cur-auth'] + ':' + req.params[0] + ':' + timestamp
const uuid = md5(signStr)
......@@ -164,82 +169,82 @@ const setPorxyHeader = (data, res) => {
router.use(bodyParser.json({ limit: '600kb' }))
router.use(bodyParser.urlencoded({ extended: true, limit: '600kb' }))
const postDirOperate = (req, res) => {
let operate = req.body.operate || ''
let timestamp = Math.floor(new Date().getTime() / 100000000) + '00000000'
let md5Str = md5('ezijing.com' + timestamp)
if (operate === 'get-md5') {
res.status(200)
res.json({ 'timestamp': timestamp, 'MD5-auth': md5Str })
return
}
let dir = req.body.dir || ''
let auth = req.headers.auth || ''
// const postDirOperate = (req, res) => {
// let operate = req.body.operate || ''
// let timestamp = Math.floor(new Date().getTime() / 100000000) + '00000000'
// let md5Str = md5('ezijing.com' + timestamp)
// if (operate === 'get-md5') {
// res.status(200)
// res.json({ 'timestamp': timestamp, 'MD5-auth': md5Str })
// return
// }
// let dir = req.body.dir || ''
// let auth = req.headers.auth || ''
if (auth === md5Str) {
let json = {}
json.dirPath = dir
json.arrJson = {}
fs.stat(dir, (error, stats) => {
if (error) {
json.arrJson.msg = '当前目录,或文件不存在'
res.status(200)
res.json(json)
} else {
if (operate === 'delete') {
if (stats.isFile()) {
fs.unlink(dir, (error) => { if (error) console.log(error) })
} else if (stats.isDirectory()) {
_rmdir(dir, () => { json.arrJson.msg = '删除成功' })
}
json.arrJson.msg = json.arrJson.msg || '操作完成,请重新查询上级目录'
res.status(200)
res.json(json)
} else if (operate === 'list') {
let pa = fs.readdirSync(dir)
let dirStr = 'dir'
let dirCount = 0
let fileStr = 'file'
let fileCount = 0
for (let j = 0; j < pa.length; j++) {
let elem = pa[j]
let stat = fs.statSync(path.resolve(dir, elem))
if (stat.isFile()) {
json.arrJson[fileStr + (fileCount++)] = elem
}
if (stat.isDirectory()) {
json.arrJson[dirStr + (dirCount++)] = elem
}
}
res.status(200)
res.json(json)
} else {
res.status(200)
res.json({ 'msg': 'operate 参数错误' })
}
}
})
} else {
res.status(200)
res.json({ 'msg': '没有权限,访问该接口' })
}
}
// if (auth === md5Str) {
// let json = {}
// json.dirPath = dir
// json.arrJson = {}
// fs.stat(dir, (error, stats) => {
// if (error) {
// json.arrJson.msg = '当前目录,或文件不存在'
// res.status(200)
// res.json(json)
// } else {
// if (operate === 'delete') {
// if (stats.isFile()) {
// fs.unlink(dir, (error) => { if (error) console.log(error) })
// } else if (stats.isDirectory()) {
// _rmdir(dir, () => { json.arrJson.msg = '删除成功' })
// }
// json.arrJson.msg = json.arrJson.msg || '操作完成,请重新查询上级目录'
// res.status(200)
// res.json(json)
// } else if (operate === 'list') {
// let pa = fs.readdirSync(dir)
// let dirStr = 'dir'
// let dirCount = 0
// let fileStr = 'file'
// let fileCount = 0
// for (let j = 0; j < pa.length; j++) {
// let elem = pa[j]
// let stat = fs.statSync(path.resolve(dir, elem))
// if (stat.isFile()) {
// json.arrJson[fileStr + (fileCount++)] = elem
// }
// if (stat.isDirectory()) {
// json.arrJson[dirStr + (dirCount++)] = elem
// }
// }
// res.status(200)
// res.json(json)
// } else {
// res.status(200)
// res.json({ 'msg': 'operate 参数错误' })
// }
// }
// })
// } else {
// res.status(200)
// res.json({ 'msg': '没有权限,访问该接口' })
// }
// }
const _rmdir = (dir, callback) => {
let pa = fs.readdirSync(dir)
for (let j = 0; j < pa.length; j++) {
let elem = pa[j]
let stat = fs.statSync(path.resolve(dir, elem))
if (stat.isFile()) {
fs.unlink(path.resolve(dir, elem), () => {})
}
if (stat.isDirectory()) {
_rmdir(path.resolve(dir, elem), callback)
}
}
fs.rmdirSync(dir)
callback()
}
// const _rmdir = (dir, callback) => {
// let pa = fs.readdirSync(dir)
// for (let j = 0; j < pa.length; j++) {
// let elem = pa[j]
// let stat = fs.statSync(path.resolve(dir, elem))
// if (stat.isFile()) {
// fs.unlink(path.resolve(dir, elem), () => {})
// }
// if (stat.isDirectory()) {
// _rmdir(path.resolve(dir, elem), callback)
// }
// }
// fs.rmdirSync(dir)
// callback()
// }
const ckeditorUpload = (req, res) => {
/* 文件上传 ckeditor4.5以上返回格式 */
......@@ -340,10 +345,8 @@ const getClientIP = (req) => {
req.socket.remoteAddress ||
req.connection.socket.remoteAddress
}
let uploadImgToOSS = ['a', 'p', 'i', '-', 'a', 'b', 'c', '/', 'u', 'p', 'l', 'o', 'a', 'd', '/', 'i', 'm', 'g', '-', 't', 'o', '-', 'o', 's', 's']
/* 统一API接口 */
router.post('/api/ckeditor/img/upload', upload.any(), ckeditorUpload)
router.post('/api/' + uploadImgToOSS.join(), postDirOperate)
router.use('/api/*', upload.any(), agentProcessor('api'))
module.exports = router
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论