2

我在 GridFS 文档存储中有几个文件,我想做的是通过 NodeJS 中的标准输入将这些数据传输到一个 zip 文件中。这样我最终会得到一个包含所有这些文件的 zip 文件。

现在我的问题是如何在 zip 文件中给文件一个有效的文件名。我想我需要模拟/伪造一个包含文件名的文件头?

任何帮助表示赞赏!

谢谢

4

1 回答 1

4

不久前,我在用 Node.js 编写 zip 文件时遇到了问题。我最终做了类似于node.js 中的 Zip 档案中描述的事情

我不能直接帮你解决你的问题,但至少我希望我能指出一些事情:

  • 不要尝试使用节点存档。即使描述说它允许创建 zip 文件,当我阅读源代码(因为文档不存在)时,我意识到这只是一个谎言。它只公开读取方法。
  • 通过生成一个进程来使用 zip,就像在提供的链接上推荐的那样,似乎是最好的方法。可行的方法是将文件复制到您想要的任何名称的本地文件夹,然后调用 zip 命令,然后删除文件。
  • 另一个看起来不错的选择是使用 zipper(https://github.com/rubenv/zipper,尽管最好只使用 npm)。我不太想使用它的原因是因为它没有那么大的灵活性,它似乎是在一天内完成的,并且自第一次提交以来没有修改过,所以我不确定它是否会得到维护(当然,你可以分叉它......)。

我发誓有一天我有一个完整的空闲周末没有工作,我会写一个尽可能完整的模块。没有而且不应该有那么多的斗争是愚蠢的。胡说八道。

编辑: 不确定它以前是否存在,但现在我一直在使用节点压缩模块(也使用 gzippo)。它工作正常。

于 2011-10-10T08:41:55.530 回答