UNPKG

oeditor

Version:

ueditor的nodejs + koa 后端实现,目前支持七牛云和本地文件系统两种存储方式

57 lines (47 loc) 1.37 kB
const _ = require('lodash') const qiniu = require('qiniu') const moment = require('moment') const bluebird = require('bluebird') const co = require('co') const fs = require('fs') const glob = require('glob') const mkdirp = require('mkdirp') const fse = require('fs-extra') function Local (opt) { this.dir = opt.dir || '/tmp/oeditor' this.prefix = opt.prefix || '/public' mkdirp.sync(this.dir) } Local.prototype.list_file = function (prefix, start, count) { let self = this let getFiles = bluebird.promisify(glob) return co(function*() { let whole = yield getFiles('**', { cwd: self.dir + '/' + prefix, nodir: true, realpath: true }) let list = [] for (let item of whole.slice(start , start + count)) { let url = self.prefix + item.replace(self.dir, '') list.push({ url }) } return { list, total: whole.lenght } }) } Local.prototype.upload = function (file, key) { let self = this return co(function*() { let segment = key.split('/') segment.pop() segment.unshift(self.dir) mkdirp.sync(segment.join('/')) fse.copySync(file, self.dir + '/' + key) return self.prefix + '/' + key }) } module.exports = Local