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

update

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