问题标签 [archiverjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
508 浏览

node.js - 如何从 POST 请求中获取带有存档器的压缩文件?

我正在NodeJS API使用 Express 构建一个,当您创建一个时,它会根据请求的正文POST生成一个文件。TAR

问题:

当端点是 aPOST时,我可以访问请求的主体,并且似乎可以用它来做事。但是,我看不到/使用/测试压缩文件(据我所知)。

当端点是 aGET时,我无法访问请求的正文(据我所知),但我可以在浏览器中查询 URL 并获取压缩文件。

基本上我想解决“据我所知”之一。到目前为止,这是我的相关代码:

我发送给此的示例 JSON 正文数据:

我只是应该发送JSON并获取一个基于SON. 这POST是错误的方法吗?如果我使用GET,应该更改什么以便我可以使用该JSON数据?有没有办法“菊花链”请求(这似乎不干净,但也许是解决方案)?

0 投票
0 回答
157 浏览

node.js - 将压缩文件发送到角度前端时损坏的 zip 文件

后端调用

});

角度服务

角度前端

所以当我从我的服务器下载它时,不知何故我得到了损坏的包,

在此处输入图像描述

希望有人可以帮助我解决这个问题,因为到目前为止我所做的改变并不重要。问题保持不变。

更新:

由于某种原因,数组缓冲区比文件本身大

在此处输入图像描述 在此处输入图像描述

响应观察者添加后更新: 在此处输入图像描述

0 投票
1 回答
330 浏览

node.js - 使用归档器压缩 word doc xml

我正在尝试在 Node.js 中制作一个程序,该程序将匿名化更大项目的 word doc 的给定路径。我已经解压缩了 docx 文件并编辑了 document.xml 文件。我现在需要做的就是重新压缩它。

我已经研究过使用 Archiver,但问题是它将文件夹压缩为 .zip,因此当您尝试将其转换为 docx 时,它已损坏。

0 投票
1 回答
2307 浏览

node.js - 我可以从 fs.createWriteStream() 获取缓冲区吗?

我有一个简单的问题 -我可以从 fs.createWriteStream() 获取缓冲区吗?

在我的例子中,我使用归档器NPM 模块,它可以从 Buffer 创建归档。当这个模块使用方法archive.finalize()结束工作时,我可能会从archive.pipe(stream)得到结果。我想要来自fs.createWriteStream()的缓冲区,我可以将其发送到res.send() Express 方法。

0 投票
1 回答
32 浏览

javascript - Nodejs:如何从子文件夹中获取所有文件并归档

我正在开发 node.js 应用程序,我在 %APPDATA%/Archive/****/Licensing 中有要归档的文件夹列表,**** 是不同的版本。(v195、v196、v197 等)

从 APPDATA 我想遍历所有版本文件夹,在版本文件夹中我只想获取不同版本文件夹的许可文件夹。

这是我尝试过的

0 投票
1 回答
338 浏览

node.js - 使用带有可下载在线链接的归档模块

在节点应用程序中,我希望下载一个 zip 文件,其中包含从 Internet 上的各种 url 下载的 pdf(如果我在浏览器中输入 url,它只会指示我下载 pdf)。我一直在使用存档器模块,该模块记录在 github 上https://github.com/archiverjs/node-archiver,官方文档位于https://www.archiverjs.com/

我被困在它提供以下示例以将文件添加到 zip 文件的部分。

不幸的是,似乎只是将 url 粘贴到 .append 或 .directory 的第一个参数中不起作用 - 有人知道我如何将可下载的文件(在线)添加到 zip 文件中吗?

0 投票
1 回答
2026 浏览

node.js - 返回带有 node.js 的 zip 文件和 express 出错

我无法使用 express 从 nodejs 的 http 响应中返回一个 zip 文件。我正在使用 ArchiverJS 和 azure-function-express。我一直在尝试解决这个问题一天,但我无法让它工作..

我的代码:

我对管道没有任何经验,但我认为这是失败的地方..

这将产生以下错误,我敢打赌它与“zip.pipe(res)”有关。也许有人可以解释我做错了什么?

0 投票
0 回答
154 浏览

javascript - aws lambda 中的archiver.js 内存泄漏

我正在使用归档器在 aws lambda 中压缩一些文件。我看到当没有更多的磁盘空间可以写入时,归档器仍然保存(或泄漏)一些数据。我一直在尝试执行 'archive.close()' 或 'archive.destroy()' 但我不断收到 archive.close/(archive.destroy) 不是函数错误。想知道是否有人遇到过或解决了它。这是我的代码的样子:

我知道这是导致内存泄漏的方式,因为我在 Lambda 调用的开始和结束时删除了文件之前和之后打印了磁盘空间。我看到有一些空间没有清理干净。

0 投票
1 回答
680 浏览

node.js - 存档器与 PassThrough() 组合/管道,追加和完成不是一个函数 - Nodejs Stream

所以,我在 Axios 流的帮助下下载文件,用归档器压缩它们,然后我想将 zip 上传到 s3 存储桶。起初,我将 zip 保存在本地目录中,一切正常。我使用多管道库来组合流。将归档 zip 流与 fs.createWriteStream 相结合

在 axios 端

一切都按预期工作,Zip 与其中的所有文件一起保存。

然后我研究并寻找如何使用流上传到 s3。我找到了这种方式。 将流通过管道传输到 s3.upload()

inputStream .pipe(uploadFromStream(s3));

我用这样的归档器实现了这个。

现在,当我尝试追加时,当 finalize 不是函数时,我收到错误 append not a function same 。当我检查时,我发现 s3Stream.append 和 s3Stream.finalize 是未定义的。我不认为它应该发生,但我猜 PassThrough 正在从组合流中删除函数。

像这样的管道流也不起作用。

0 投票
1 回答
88 浏览

node.js - 如何使用“archiver.js”控制压缩目录和文件的顺序?

我正在使用归档器压缩两个文件夹xy

zip 文件还可以,但unzip -l显示xy交错。
(看起来像archiver遍历xyBFS 顺序)。

我想压缩xy以 DFS 顺序unzip -l显示:

如何控制压缩目录和文件的顺序?