@@ -10,10 +10,8 @@ var compression = require('compression')
1010var session = require ( 'express-session' )
1111var SequelizeStore = require ( 'connect-session-sequelize' ) ( session . Store )
1212var fs = require ( 'fs' )
13- var url = require ( 'url' )
1413var path = require ( 'path' )
15- var imgur = require ( 'imgur' )
16- var formidable = require ( 'formidable' )
14+
1715var morgan = require ( 'morgan' )
1816var passportSocketIo = require ( 'passport.socketio' )
1917var helmet = require ( 'helmet' )
@@ -200,87 +198,7 @@ app.use(require('./lib/web/statusRouter'))
200198app . use ( require ( './lib/web/auth' ) )
201199app . use ( require ( './lib/web/historyRouter' ) )
202200app . use ( require ( './lib/web/userRouter' ) )
203- // upload image
204- app . post ( '/uploadimage' , function ( req , res ) {
205- var form = new formidable . IncomingForm ( )
206-
207- form . keepExtensions = true
208-
209- if ( config . imageUploadType === 'filesystem' ) {
210- form . uploadDir = 'public/uploads'
211- }
212-
213- form . parse ( req , function ( err , fields , files ) {
214- if ( err || ! files . image || ! files . image . path ) {
215- response . errorForbidden ( res )
216- } else {
217- if ( config . debug ) { logger . info ( 'SERVER received uploadimage: ' + JSON . stringify ( files . image ) ) }
218-
219- try {
220- switch ( config . imageUploadType ) {
221- case 'filesystem' :
222- res . send ( {
223- link : url . resolve ( config . serverurl + '/' , files . image . path . match ( / ^ p u b l i c \/ ( .+ $ ) / ) [ 1 ] )
224- } )
225-
226- break
227-
228- case 's3' :
229- var AWS = require ( 'aws-sdk' )
230- var awsConfig = new AWS . Config ( config . s3 )
231- var s3 = new AWS . S3 ( awsConfig )
232-
233- fs . readFile ( files . image . path , function ( err , buffer ) {
234- if ( err ) {
235- logger . error ( err )
236- res . status ( 500 ) . end ( 'upload image error' )
237- return
238- }
239- var params = {
240- Bucket : config . s3bucket ,
241- Key : path . join ( 'uploads' , path . basename ( files . image . path ) ) ,
242- Body : buffer
243- }
244-
245- var mimeType = getImageMimeType ( files . image . path )
246- if ( mimeType ) { params . ContentType = mimeType }
247-
248- s3 . putObject ( params , function ( err , data ) {
249- if ( err ) {
250- logger . error ( err )
251- res . status ( 500 ) . end ( 'upload image error' )
252- return
253- }
254- res . send ( {
255- link : `https://s3-${ config . s3 . region } .amazonaws.com/${ config . s3bucket } /${ params . Key } `
256- } )
257- } )
258- } )
259- break
260- case 'imgur' :
261- default :
262- imgur . setClientId ( config . imgur . clientID )
263- imgur . uploadFile ( files . image . path )
264- . then ( function ( json ) {
265- if ( config . debug ) { logger . info ( 'SERVER uploadimage success: ' + JSON . stringify ( json ) ) }
266- res . send ( {
267- link : json . data . link . replace ( / ^ h t t p : \/ \/ / i, 'https://' )
268- } )
269- } )
270- . catch ( function ( err ) {
271- logger . error ( err )
272- return res . status ( 500 ) . end ( 'upload image error' )
273- } )
274- break
275- }
276- } catch ( err ) {
277- logger . error ( err )
278- return res . status ( 500 ) . end ( 'upload image error' )
279- }
280- }
281- } )
282- } )
283-
201+ app . use ( require ( './lib/web/imageRouter' ) )
284202app . use ( require ( './lib/web/noteRouter' ) )
285203
286204// response not found if no any route matxches
0 commit comments