问题标签 [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.
node.js - 如何从 POST 请求中获取带有存档器的压缩文件?
我正在NodeJS API
使用 Express 构建一个,当您创建一个时,它会根据请求的正文POST
生成一个文件。TAR
问题:
当端点是 aPOST
时,我可以访问请求的主体,并且似乎可以用它来做事。但是,我看不到/使用/测试压缩文件(据我所知)。
当端点是 aGET
时,我无法访问请求的正文(据我所知),但我可以在浏览器中查询 URL 并获取压缩文件。
基本上我想解决“据我所知”之一。到目前为止,这是我的相关代码:
我发送给此的示例 JSON 正文数据:
我只是应该发送JSON
并获取一个基于SON
. 这POST
是错误的方法吗?如果我使用GET
,应该更改什么以便我可以使用该JSON
数据?有没有办法“菊花链”请求(这似乎不干净,但也许是解决方案)?
node.js - 使用归档器压缩 word doc xml
我正在尝试在 Node.js 中制作一个程序,该程序将匿名化更大项目的 word doc 的给定路径。我已经解压缩了 docx 文件并编辑了 document.xml 文件。我现在需要做的就是重新压缩它。
我已经研究过使用 Archiver,但问题是它将文件夹压缩为 .zip,因此当您尝试将其转换为 docx 时,它已损坏。
node.js - 我可以从 fs.createWriteStream() 获取缓冲区吗?
我有一个简单的问题 -我可以从 fs.createWriteStream() 获取缓冲区吗?
在我的例子中,我使用归档器NPM 模块,它可以从 Buffer 创建归档。当这个模块使用方法archive.finalize()结束工作时,我可能会从archive.pipe(stream)得到结果。我想要来自fs.createWriteStream()的缓冲区,我可以将其发送到res.send() Express 方法。
javascript - Nodejs:如何从子文件夹中获取所有文件并归档
我正在开发 node.js 应用程序,我在 %APPDATA%/Archive/****/Licensing 中有要归档的文件夹列表,**** 是不同的版本。(v195、v196、v197 等)
从 APPDATA 我想遍历所有版本文件夹,在版本文件夹中我只想获取不同版本文件夹的许可文件夹。
这是我尝试过的
node.js - 使用带有可下载在线链接的归档模块
在节点应用程序中,我希望下载一个 zip 文件,其中包含从 Internet 上的各种 url 下载的 pdf(如果我在浏览器中输入 url,它只会指示我下载 pdf)。我一直在使用存档器模块,该模块记录在 github 上https://github.com/archiverjs/node-archiver,官方文档位于https://www.archiverjs.com/。
我被困在它提供以下示例以将文件添加到 zip 文件的部分。
不幸的是,似乎只是将 url 粘贴到 .append 或 .directory 的第一个参数中不起作用 - 有人知道我如何将可下载的文件(在线)添加到 zip 文件中吗?
node.js - 返回带有 node.js 的 zip 文件和 express 出错
我无法使用 express 从 nodejs 的 http 响应中返回一个 zip 文件。我正在使用 ArchiverJS 和 azure-function-express。我一直在尝试解决这个问题一天,但我无法让它工作..
我的代码:
我对管道没有任何经验,但我认为这是失败的地方..
这将产生以下错误,我敢打赌它与“zip.pipe(res)”有关。也许有人可以解释我做错了什么?
javascript - aws lambda 中的archiver.js 内存泄漏
我正在使用归档器在 aws lambda 中压缩一些文件。我看到当没有更多的磁盘空间可以写入时,归档器仍然保存(或泄漏)一些数据。我一直在尝试执行 'archive.close()' 或 'archive.destroy()' 但我不断收到 archive.close/(archive.destroy) 不是函数错误。想知道是否有人遇到过或解决了它。这是我的代码的样子:
我知道这是导致内存泄漏的方式,因为我在 Lambda 调用的开始和结束时删除了文件之前和之后打印了磁盘空间。我看到有一些空间没有清理干净。
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 正在从组合流中删除函数。
像这样的管道流也不起作用。
node.js - 如何使用“archiver.js”控制压缩目录和文件的顺序?
我正在使用归档器压缩两个文件夹x
和y
:
zip 文件还可以,但unzip -l
显示x
和y
交错。
(看起来像archiver
遍历x
和y
BFS 顺序)。
我想压缩x
并y
以 DFS 顺序unzip -l
显示:
如何控制压缩目录和文件的顺序?