1
- const fs = require ( 'fs' ) ;
2
- const express = require ( 'express' ) ;
3
- const cors = require ( 'cors' ) ;
4
- const multer = require ( 'multer' ) ;
5
- const bodyParser = require ( 'body-parser' ) ;
6
- const fileService = require ( './file-service' ) ;
7
- const logger = require ( '../log' ) ;
1
+ import { existsSync } from 'fs' ;
2
+ import express from 'express' ;
3
+ import cors from 'cors' ;
4
+ import multer , { diskStorage , memoryStorage } from 'multer' ;
5
+ import { urlencoded , json } from 'body-parser' ;
6
+ import { writeFile , getFileSize , readFile , removeFile , writeFileChunk , assembleFileChunks } from './file-service' ;
7
+ import { verbose , info , error } from '../log' ;
8
8
9
9
/* eslint-disable no-underscore-dangle */
10
10
const saveFile = ( request , response , filename ) => {
11
- logger . verbose ( 'Saving file' , request . file , filename ) ;
12
- const result = fileService . writeFile ( request . file ) ;
11
+ verbose ( 'Saving file' , request . file , filename ) ;
12
+ const result = writeFile ( request . file ) ;
13
13
if ( request . query . _postmessage ) {
14
14
if ( request . query . _postmessageid ) {
15
15
result . data . _postmessageid = request . query . _postmessageid ;
@@ -24,18 +24,18 @@ const saveFile = (request, response, filename) => {
24
24
} ;
25
25
/* eslint-enable no-underscore-dangle */
26
26
27
- module . exports = {
27
+ export default {
28
28
init ( options ) {
29
29
let storage ;
30
30
if ( options . storage . type === 'disk' ) {
31
- logger . info ( 'Using disk storage' , ( options . storage . path || '/tmp' ) ) ;
31
+ info ( 'Using disk storage' , ( options . storage . path || '/tmp' ) ) ;
32
32
33
- if ( options . storage . path && ! fs . existsSync ( options . storage . pathh ) ) {
34
- logger . error ( options . storage . path , 'does not exist' ) ;
33
+ if ( options . storage . path && ! existsSync ( options . storage . pathh ) ) {
34
+ error ( options . storage . path , 'does not exist' ) ;
35
35
throw new Error ( `${ options . storage . path } does not exist` ) ;
36
36
}
37
37
38
- storage = multer . diskStorage ( {
38
+ storage = diskStorage ( {
39
39
destination ( req , file , cb ) {
40
40
cb ( null , ( options . storage . path || '/tmp' ) ) ;
41
41
} ,
@@ -44,29 +44,29 @@ module.exports = {
44
44
} ,
45
45
} ) ;
46
46
} else {
47
- logger . info ( 'Using memory storage' ) ;
48
- storage = multer . memoryStorage ( ) ;
47
+ info ( 'Using memory storage' ) ;
48
+ storage = memoryStorage ( ) ;
49
49
}
50
50
const upload = multer ( { storage } ) ;
51
51
52
52
const app = express ( ) ;
53
- app . use ( bodyParser . urlencoded ( {
53
+ app . use ( urlencoded ( {
54
54
extended : true ,
55
55
} ) ) ;
56
- app . use ( bodyParser . json ( ) ) ;
56
+ app . use ( json ( ) ) ;
57
57
app . use ( cors ( ) ) ;
58
58
59
59
app . get ( '/files/:filename/size' , ( request , response ) => {
60
- const result = fileService . getFileSize ( request . params . filename ) ;
60
+ const result = getFileSize ( request . params . filename ) ;
61
61
response . status ( result . status ) . send ( result . data ) ;
62
62
} ) ;
63
63
64
64
app . get ( '/files/:filename' , ( request , response ) => {
65
- const result = fileService . readFile ( request . params . filename ) ;
65
+ const result = readFile ( request . params . filename ) ;
66
66
response . status ( result . status ) . send ( result . data ) ;
67
67
} ) ;
68
68
app . delete ( '/files/:filename' , ( request , response ) => {
69
- const result = fileService . removeFile ( request . params . filename ) ;
69
+ const result = removeFile ( request . params . filename ) ;
70
70
response . status ( result . status ) ;
71
71
} ) ;
72
72
@@ -79,7 +79,7 @@ module.exports = {
79
79
} ) ;
80
80
81
81
app . post ( '/chunk/:filename' , upload . single ( 'file' ) , ( request , response ) => {
82
- const result = fileService . writeFileChunk (
82
+ const result = writeFileChunk (
83
83
request . params . filename ,
84
84
request . file . buffer ,
85
85
request . body [ options . chunkNumber || 'chunknumber' ]
@@ -88,7 +88,7 @@ module.exports = {
88
88
} ) ;
89
89
90
90
app . post ( '/assemble/:filename' , ( request , response ) => {
91
- const result = fileService . assembleFileChunks (
91
+ const result = assembleFileChunks (
92
92
request . params . filename ,
93
93
request . body [ options . totalSize || 'totalsize' ]
94
94
) ;
@@ -99,12 +99,13 @@ module.exports = {
99
99
} ,
100
100
101
101
run ( options ) {
102
- logger . info ( '================================' ) ;
103
- logger . info ( '>>> Express REST file server <<<' ) ;
104
- logger . info ( '================================' ) ;
102
+ info ( '================================' ) ;
103
+ info ( '>>> Express REST file server <<<' ) ;
104
+ info ( '================================' ) ;
105
105
const server = this . init ( options ) ;
106
106
server . listen ( options . port , ( ) => {
107
- logger . info ( 'Listening on' , options . port ) ;
107
+ info ( 'Listening on' , options . port ) ;
108
108
} ) ;
109
109
} ,
110
110
} ;
111
+
0 commit comments