在linux中从内存中压缩文件

Zipping a file from memory in linux

本文关键字:压缩 文件 内存 linux      更新时间:2023-10-16

我正在开发必须加密和压缩文件的应用程序。因此,我在内存中创建一些数据(文本、二进制或其他),对其进行加密并保存到磁盘(文件1和文件2)。我称之为"zip out.zip file1 file2"。

我不想将这些文件保存到磁盘上,而是立即创建zip并从内存中打包这些文件。

我该怎么做?

非常感谢!

您可以尝试使用zlib库来从内存缓冲区创建zip文件。

提升:iostreams也可能是一个很好的解决方案。

对于zlib,在contribs中有一个名为minizip的zip扩展。对于minizip,您可以在作者页面上找到使用内存缓冲区的代码:

Justin Fletcher为ioapi代码(ioapi_mem_c.zip)编写了一个非常简单的内存访问方法实现

请注意,必须先压缩,然后加密。加密数据无法再压缩。

有趣的是,我找不到一个库来从C.zlib创建ZIP文件。zlib只允许(去)压缩ZIP档案中的单个条目。

它附带contrib/minizip;也许这能让你开始。