Creating a ZIP archive purely in memory?


#1

Has someone devised a way to create a ZIP archive purely in memory? I
know of rubyzip, but apparently it can only create an archive as a
file. That’s not too bad, but if I can I’d prefer to do this in memory.

Michael


Michael S. They tell you that the darkness
mailto:removed_email_address@domain.invalid Is a blessing in disguise
http://www.schuerig.de/michael/ --Janis Ian, From Me To You


#2

Out of curiosity, why?

If you want to work around it, you can mount a ramdisk and zip to a
file in that… or perhaps look at FuseFS
(http://rubyforge.org/projects/fusefs/) if you want to roll your
own…

Alternatively you could just use ZLib, but I assume you want zip for a
reason…

Cheers!

-DF


#3

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Nov 16, 2005, at 4:25 PM, David F. wrote:

On 11/17/05, Michael S. removed_email_address@domain.invalid wrote:

Has someone devised a way to create a ZIP archive purely in memory? I
know of rubyzip, but apparently it can only create an archive as a
file. That’s not too bad, but if I can I’d prefer to do this in
memory.
Out of curiosity, why?

I guess he’s dynamically generating a zipfile for his users to download.

e.g. download all posts from the past month.

jeremy
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (Darwin)

iD8DBQFDe88TAQHALep9HFYRAnAqAKCXdX2GHMP3zhHJIvaoAJRwESMRDQCghqHF
jtogVZGjstVd2rQLiatrEOk=
=cafG
-----END PGP SIGNATURE-----


#4

On Thursday 17 November 2005 01:30, Jeremy K. wrote:

download.
Exactly. Doing this in memory and then send_data’ing would just be more
convenient than creating a temporary file and using send_file on it.

Michael


Michael S. There is no matrix,
mailto:removed_email_address@domain.invalid only reality.
http://www.schuerig.de/michael/ --Lawrence Fishburn


#5

Did anyone ever come up with a way of doing this (other than using
chilkats zip library)?

Thanks

P


#6

http://www.rubyonrailsblog.com/articles/2006/11/07/zipping-and-unzipping-multiple-directories-using-rubyzip

what about that ?