最近在做一个文件升级的功能,需要从下载服务器中指定目录下的文件。在学习了zlib后发现这个模块达不到这个功能

在查找资料后发现后发现 archiver 模块很好用,不过我也发现大部分中文资料没有如果查询压缩进度,所以在此分享一下:

archiver的github地址:

https://github.com/archiverjs/node-archiver

API文档地址:

https://archiverjs.com/docs/

压缩等级说明:

var archive = archiver('zip', {
zlib: { level: 9 } // Sets the compression level.
});

找了一下文档发现竟然没有说明压缩等级的说明,所以只好翻了一下源代码,找到之后复制到notepad+上,结果在写此文时不小心关掉了,参数不太确定。
-1是默认
0是最低(不太确认)
9是最高

获取进度信息:

global.packageProgress={};
archive.on('progress', function(progress) {
  console.log(progress);
  packageProgress=progress;
});

只需要绑定这个时间就可以了,事件都可以用这种方式来绑定,具体事件可以参考API文档。

本人使用了2个get路由,第一个用来让node.js开始进行打包处理,设置一个globel变量,然后在绑定的progress事件中不断赋值。
第二个则是返回进度信息用的。(前端轮询)

在Node.js中在保持目录结构的情况下压缩指定目录的更多相关文章

  1. tar命令解压时如何去除目录结构及其解压到指定目录 (--strip-components N)

    去除目录结构加上 --strip-components N 如: 压缩文件eg.tar 中文件信息为 src/src/src/eg.txt 运行 tar -xvf eg.tar --strip-com ...

  2. 关于angular JS 中$timeOut 的一些不正常情况下的$destory

    最近项目中存在的问题头疼脑热了好一会. 我先简单说明下问题是由,使用$timeOut循环调用的时候由于页面存在异步加载会出现反复执行循环反复调用$timeOut,怎么清除跳出循环都不管用.于是查到了如 ...

  3. 深入理解Node.js中的垃圾回收和内存泄漏的捕获

    深入理解Node.js中的垃圾回收和内存泄漏的捕获 文章来自:http://wwsun.github.io/posts/understanding-nodejs-gc.html Jan 5, 2016 ...

  4. 使用 ICharpCode.SharpZipLib 压缩指定目录结构

    今天做项目中遇见一个压缩问题,我的目录结构是树形菜单,文件在服务器存储是平面存储,没有目录结构,所以在下载指定目录的时候要构建目录结构,如下: 当我右键点击下载b目录文件夹的时候要Download   ...

  5. Node.js中的URL

    Node.js中的URL 什么是URL URL是Uniform Location Resource的缩写,翻译为"统一资源定位符",也就是描述资源位置的固定表示方法.被URL描述的 ...

  6. Node.js 中 __dirname 和 ./ 的区别

    概要 __dirname 总是指向被执行 js 文件的绝对路径 在 /d1/d2/myscript.js 文件中写了 __dirname, 它的值就是 /d1/d2 . ./ 会返回你执行 node ...

  7. 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

    Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持M ...

  8. 在node.js中使用COOKIE

    node.js中如何向客户端发送COOKIE呢?有如下两个方案: 一.使用response.writeHead,代码示例: //设置过期时间为一分钟 var today = new Date(); v ...

  9. 避免Node.js中回调地狱

    为了解决这个阻塞问题,JavaScript严重依赖于回调,这是在长时间运行的进程(IO,定时器等)完成后运行的函数,因此允许代码执行经过长时间运行的任务. downloadFile('example. ...

随机推荐

  1. Niagara workbench 介绍文档---翻译

    一. 发现在建立station的时候存在一些问题,所以对技术文档部分做一个详细的了解,在这之前对出现的问题总结一下 1.  在 Windows操作系统中Application Direction中可以 ...

  2. sqlmap+DWAV测试实战(一)

    root@kali-yaming:~# sqlmap -u "http://172.18.225.39/vulnerabilities/sqli/?id=1&Submit=Submi ...

  3. django----Form实时更新两种方式

    在ModelForm需要知道: from app03 import models from django.forms import ModelForm class UserForm(ModelForm ...

  4. Vue-cli 创建的项目配置跨域请求(通过反向代理)---配置多个代理--axios请求

    问题描述: 使用 Vue-cli 创建的项目,开发地址是 localhost:8080,需要访问 localhost:9000 或https://m.maoyan.com或http://image.b ...

  5. du命令

    选项 例1:显示单个文件的大小(默认单位K) [root@zabbix alertscripts]# du -h sendim.py 4.0k sendim.py 例2:显示某个目录的总大小 例3:输 ...

  6. jQuery绑定或删除绑定事件

    <!DOCTYPE html><html lang="en" class="loading"><head> <meta ...

  7. Centos7上搭建ftp服务器

    ftp服务器搭建 1.安装好centos系统,配好yum仓库 其中vsftpd源在这下载 http://rpmfind.net/linux/rpm2html/search.php?query=vsft ...

  8. sqoop无法导出parquet文件到mysql

    1.问题描述 在CDH集群中我们需要将Hive表的数据导入到RDBMS数据库中,使用Sqoop工具可以方便的将Hive表数据抽取到RDBMS数据库中,在使用Sqoop抽取Hive Parquet表时作 ...

  9. Vuex详解笔记2

    关于 state 每个vuex 应用只有一个 store 实例,所以使用起来不会太复杂,对于定位错误状态和操作会很方便. 简单用法:在vuex 的计算属性中返回vuex 的状态 最基本的使用方式,通过 ...

  10. opencv图片坐标和数组坐标

    图片坐标和数组坐标是相反的,坐标原点位于左上角 import numpy as np import cv2 height, width = 150, 200 img = np.zeros((heigh ...