diff --git a/package.json b/package.json index c32e425..9678f9c 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "mime-types": "^2.1.35", "mitt": "^3.0.0", "nodejs-file-downloader": "^4.12.1", - "piclist": "^0.7.4", + "piclist": "^0.7.6", "pinia": "^2.1.4", "pinia-plugin-persistedstate": "^3.1.0", "qiniu": "^7.8.0", diff --git a/src/main/fileServer/index.ts b/src/main/fileServer/index.ts new file mode 100644 index 0000000..34f9470 --- /dev/null +++ b/src/main/fileServer/index.ts @@ -0,0 +1,32 @@ +import http from 'http' +import fs from 'fs-extra' +import path from 'path' +import picgo from '@core/picgo' +import logger from '../apis/core/picgo/logger' + +export const imgFilePath = path.join(picgo.baseDir, 'imgTemp') +fs.ensureDirSync(imgFilePath) + +const serverPort = 36699 + +export function startFileServer () { + const server = http.createServer((req, res) => { + const requestPath = req.url?.split('?')[0] + const filePath = path.join(imgFilePath, requestPath!) + + fs.readFile(filePath, (err, data) => { + if (err) { + res.writeHead(404) + res.end('404 Not Found') + } else { + res.end(data) + } + }) + }) + + server.listen(serverPort, () => { + logger.info(`File server is running, http://localhost:${serverPort}`) + }).on('error', (err) => { + logger.error(err) + }) +} diff --git a/src/main/lifeCycle/index.ts b/src/main/lifeCycle/index.ts index 0899d5c..c1c590e 100644 --- a/src/main/lifeCycle/index.ts +++ b/src/main/lifeCycle/index.ts @@ -47,6 +47,7 @@ import clipboardPoll from '../utils/clipboardPoll' import path from 'path' import { CLIPBOARD_IMAGE_FOLDER } from '~/universal/utils/static' import fs from 'fs-extra' +import { startFileServer } from '../fileServer' const isDevelopment = process.env.NODE_ENV !== 'production' const handleStartUpFiles = (argv: string[], cwd: string) => { @@ -158,6 +159,7 @@ class LifeCycle { shortKeyHandler.init() }) server.startup() + startFileServer() if (process.env.NODE_ENV !== 'development') { handleStartUpFiles(process.argv, process.cwd()) } diff --git a/src/renderer/pages/Gallery.vue b/src/renderer/pages/Gallery.vue index f4af9d8..9bab2e3 100644 --- a/src/renderer/pages/Gallery.vue +++ b/src/renderer/pages/Gallery.vue @@ -242,7 +242,7 @@ @click="zoomImage(index)" > diff --git a/yarn.lock b/yarn.lock index a2af325..3033b89 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11054,10 +11054,10 @@ performance-now@^2.1.0: resolved "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -piclist@^0.7.4: - version "0.7.4" - resolved "https://registry.npmjs.org/piclist/-/piclist-0.7.4.tgz#125c9f337e2d7375ae0c5c17fafaf924134fd65f" - integrity sha512-PxE6S93uWP7sQNyMi6R7ZEs57oOXgm/nD14Moi0k0dbAlvtm1kWdrc4CboW/6e7hPVgeqT7pGi0+y0SF8iTxOA== +piclist@^0.7.6: + version "0.7.6" + resolved "https://registry.npmjs.org/piclist/-/piclist-0.7.6.tgz#93ac36f2f3fa067d014b4ff1e808bd6304fa29e3" + integrity sha512-aLoVhvl8A/Ez2I3T3rmqQ5MCBw6txTQ+5H0zGvgybEpHGpuTHct9MBplfJVj2eIyqwbbcWT24t5bkvaByma2gw== dependencies: "@picgo/i18n" "^1.0.0" "@picgo/store" "^2.0.4"