将多个文件传输到zip文件中

时间:2011-10-10 03:02:40

标签: mongodb node.js zip pipe gridfs

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

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

感谢任何帮助!

由于

1 个答案:

答案 0 :(得分:4)

我不久前用Node.js编写zip文件时遇到了问题。我最终做了类似于Zip archives in node.js

中描述的事情

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

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

我发誓当天我整个免费周末都没有工作,我会写一个令人讨厌的模块尽可能完整。愚蠢的是没有,也不应该那么多的斗争。 blablablarant。

修改 不确定它之前是否存在,但现在我一直在使用node-compress模块​​(也使用gzippo)。它工作正常。