node.js - 在node.js中处理ZIP-Buffer

标签 node.js zip

我正在使用 Node.js 构建 Web 应用程序的服务器部分。这涉及从 thetvdb.com ( API documentation of thetvdb ) 获取数据。 数据以 zip 文件形式提供。 HTTP 下载没有问题,但是解析文件却有问题。实际上,我从不保存文件,只是将其保留在内存中,如 How to download and unzip a zip file in memory in NodeJs? 中所建议的那样。

我有一个包含有效数据的缓冲区(与我使用浏览器/curl 下载文件时的数据相同...)。然而,adm-zip(我也厌倦了其他zip库,有些建议zip长度无效)无法打开它。它没有显示错误,但最后的 zipEntries 长度为 0。 当我将缓冲区写入文件系统并使用 gui 或 cli 工具打开它时,它就可以工作了。

我无法提供该文件的直接链接,因为它会涉及我的 API key ,但我重新上传了它 here .

最佳答案

我想我可以给你一个答案:

不要依赖npm install。我刚刚运行了 example您通过提供的 zip 文件链接到该文件,我得到的输出为 “0”

我在其他 StackOverflow 页面上看到一条评论,说 npm 上的 adm-zip 版本不是最新的。我从 github 获取了一份新的 adm-zip 副本,覆盖了我的 node_modules 文件夹中的副本并重新运行了示例代码,现在得到以下内容:

...
<Actor>
  <id>237811</id>
  <Image>actors/237811.jpg</Image>
  <Name>Peter Pratt</Name>
  <Role>The Master</Role>
  <SortOrder>3</SortOrder>
</Actor>
<Actor>
  <id>23780s/237811.jpg</Image>

试一试!

关于node.js - 在node.js中处理ZIP-Buffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11722798/

相关文章:

node.js - Mac OS X Yosemite 上的 ElasticSearch + Node : JRE crash?

javascript - NodeJS - 'database.getOneWhere' 不是一个函数

node.js - 关于下面代码中的事件循环,nodejs 和浏览器有什么区别?

java - Zip extractAll 未定义?

javascript - Express 路由中的可选 GET 参数

python - NodeJS 和 Python 哈希的区别

c# - 读取 zip 包中 xml 文件的内容

python - 如何将 FastAPI UploadFile(zip 文件)以 .zip 格式保存到磁盘?

command-line - 如何从命令行更新巨大的 zip 存档,删除所有已删除的文件?

c++ - LIBZIP 是否提供了一种方法来检查 zip_file 是否是目录?