2011-10-10 164 views
2

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

现在我的问题是我怎样才能给这些文件的有效文件名里面的压缩文件。我想我需要模拟/伪造一个包含文件名的文件头?

任何帮助表示赞赏!

感谢

回答

4

与Node.js的写zip文件时,不久前我有问题。最后我做类似的东西在Zip archives in node.js

描述的东西,我不能与你的问题帮你直接,但至少我希望我可以指出一些事情:

  • 不要试图使用节点归档。即使描述说它允许创建zip文件,但当我阅读源代码时(因为文档不存在),我意识到这只是一个谎言。它只公开阅读的方法。
  • 通过产生一个进程使用zip,就像在提供的链接上推荐的那样,似乎是最好的方法。一些可行的方法是将文件复制到本地文件夹中,然后调用zip命令,然后再删除文件。
  • 另一个选项似乎没问题,就是使用拉链(https://github.com/rubenv/zipper,尽管最好只使用npm)。我并不真正希望使用它的原因是因为没有太大的灵活性,它似乎在一天内完成,并且自第一次提交以来它没有被修改过,所以我不确定它会接受维护(当然,你可以把它叉起来......)。

我发誓,我有一个完整的免费周末,没有工作我会写一个疯狂的模块,尽可能完成这个。愚蠢的是没有,也不应该那么艰难。 blablablarant。

编辑:如果 不知道它在那里,但现在我已经使用节点,压缩模块(也使用gzippo)。它工作正常。

+0

嗨,我会加入你编写一个不错的zip库:)我去了产卵过程流输出的标准输出;)但如果我们可以流数据到压缩过程的标准输入而不保留文件到硬盘。 – sled

+0

真棒回答。谢谢。 –