@@ -4,6 +4,7 @@ const Controller = require('egg').Controller;
44const _ = require ( 'lodash' ) ;
55const path = require ( 'path' ) ;
66const fs = require ( 'fs' ) ;
7+ const uuidv1 = require ( 'uuid/v1' ) ;
78const awaitWriteStream = require ( 'await-stream-ready' ) . write ;
89const sendToWormhole = require ( 'stream-wormhole' ) ;
910
@@ -415,26 +416,25 @@ class TopicController extends Controller {
415416 * 上传
416417 */
417418 async upload ( ) {
418- const { ctx, config } = this ;
419+ const { ctx, config, service } = this ;
420+ const uid = uuidv1 ( ) ;
419421 const stream = await ctx . getFileStream ( ) ;
420- const filename = encodeURIComponent ( stream . fields . name ) +
421- path . extname ( stream . filename ) . toLowerCase ( ) ;
422- const target = path . join ( config . upload . path , filename ) ;
422+ const filename = uid + path . extname ( stream . filename ) . toLowerCase ( ) ;
423423
424424 // 如果有七牛云的配置,优先上传七牛云
425- if ( config . qn_access ) {
425+ if ( config . qn_access && config . qn_access . secretKey !== 'your secret key' ) {
426426 try {
427- const upload = this . ctx . helper . qnUpload ( config . qn_access ) ;
428- const result = await upload ( stream ) ;
427+ const result = await service . topic . qnUpload ( stream , filename ) ;
429428 ctx . body = {
430429 success : true ,
431- url : result . url ,
430+ url : config . qn_access . origin + '/' + result . key ,
432431 } ;
433432 } catch ( err ) {
434433 await sendToWormhole ( stream ) ;
435434 throw err ;
436435 }
437436 } else {
437+ const target = path . join ( config . upload . path , filename ) ;
438438 const writeStream = fs . createWriteStream ( target ) ;
439439 try {
440440 await awaitWriteStream ( stream . pipe ( writeStream ) ) ;
0 commit comments