Исправление багов

This commit is contained in:
Book Pauk
2022-10-14 21:16:26 +07:00
parent 7799bba9f2
commit ecc7e2b2c3
5 changed files with 48 additions and 18 deletions

View File

@@ -66,8 +66,15 @@ class RemoteLib {
const buf = await this.down.load(`${this.remoteHost}${link}`);
const tmpFile = `${this.config.tempDir}/${utils.randomHexString(30)}`;
const tmpFile2 = `${this.config.tempDir}/${utils.randomHexString(30)}`;
const publicPath = `${this.config.publicDir}${link}`;
await fs.writeFile(publicPath, buf);
await fs.writeFile(tmpFile, buf);
await utils.gzipFile(tmpFile, tmpFile2, 4);
await fs.remove(tmpFile);
await fs.move(tmpFile2, publicPath, {overwrite: true});
return path.basename(link);
} catch (e) {

View File

@@ -1,7 +1,6 @@
const os = require('os');
const path = require('path');
const fs = require('fs-extra');
const zlib = require('zlib');
const _ = require('lodash');
const ZipReader = require('./ZipReader');
@@ -310,20 +309,6 @@ class WebWorker {
}
}
//async
gzipFile(inputFile, outputFile, level = 1) {
return new Promise((resolve, reject) => {
const gzip = zlib.createGzip({level});
const input = fs.createReadStream(inputFile);
const output = fs.createWriteStream(outputFile);
input.pipe(gzip).pipe(output).on('finish', (err) => {
if (err) reject(err);
else resolve();
});
});
}
async restoreBook(bookPath, downFileName) {
const db = this.db;
@@ -344,7 +329,7 @@ class WebWorker {
await fs.ensureDir(path.dirname(publicPath));
const tmpFile = `${this.config.tempDir}/${utils.randomHexString(30)}`;
await this.gzipFile(extractedFile, tmpFile, 4);
await utils.gzipFile(extractedFile, tmpFile, 4);
await fs.remove(extractedFile);
await fs.move(tmpFile, publicPath, {overwrite: true});
} else {

View File

@@ -1,5 +1,6 @@
const fs = require('fs-extra');
const path = require('path');
const zlib = require('zlib');
const crypto = require('crypto');
function sleep(ms) {
@@ -93,6 +94,20 @@ function randomHexString(len) {
return crypto.randomBytes(len).toString('hex')
}
//async
function gzipFile(inputFile, outputFile, level = 1) {
return new Promise((resolve, reject) => {
const gzip = zlib.createGzip({level});
const input = fs.createReadStream(inputFile);
const output = fs.createWriteStream(outputFile);
input.pipe(gzip).pipe(output).on('finish', (err) => {
if (err) reject(err);
else resolve();
});
});
}
module.exports = {
sleep,
versionText,
@@ -104,4 +119,5 @@ module.exports = {
getBufHash,
intersectSet,
randomHexString,
gzipFile,
};