optimise zip compression
This commit is contained in:
parent
e502259cdb
commit
b277b603c9
119 changed files with 30 additions and 39 deletions
|
@ -1,17 +1,37 @@
|
|||
import fs from 'fs'
|
||||
import zipper from 'zip-local'
|
||||
import Jszip from 'jszip'
|
||||
|
||||
const compressionConfig = {
|
||||
type: "nodebuffer",
|
||||
compression: "DEFLATE",
|
||||
compressionOptions: {
|
||||
level: 9
|
||||
}
|
||||
}
|
||||
|
||||
const fileConfig = {
|
||||
binary: true,
|
||||
compression: "DEFLATE"
|
||||
}
|
||||
|
||||
export async function save(filePath) {
|
||||
const jszip = new Jszip()
|
||||
const directories = filePath.split('/')
|
||||
const fileName = directories[directories.length - 1]
|
||||
|
||||
export function save(fileName) {
|
||||
try {
|
||||
zipper.sync
|
||||
.zip(`${fileName}`)
|
||||
.compress()
|
||||
.save(`${fileName}.zip`)
|
||||
const data = fs.readFileSync(`${filePath}`)
|
||||
|
||||
await jszip.file(`${fileName}`, data, fileConfig)
|
||||
await jszip.generateNodeStream({
|
||||
...compressionConfig,
|
||||
streamFiles: true
|
||||
})
|
||||
.pipe(fs.createWriteStream(`${filePath}.zip`))
|
||||
|
||||
fs.unlinkSync(fileName)
|
||||
return true
|
||||
} catch (err) {
|
||||
console.log('on save error', fileName, err.message)
|
||||
console.log('on save error', filePath, err.message)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue