Es gibt zwei RubyZip-Bibliotheken, die ich finden konnte.
- Chilkat's Ruby Zip Library
- rubyzip on Sourceforge
definitiv Chilkat Bibliothek erlaubt es, eine Zip-Datei im Speicher zu erstellen, anstatt sie auf die Festplatte automatisch zu schreiben, wie in diesen Links gesehen: Zip to Memory, Zip from in memory data
Die eine auf SourceForge, auf der anderen Seite, bietet möglicherweise eine Option zum Zippen einer Datei im Speicher, aber ich bin nicht ganz sicher, da ich Ruby neu bin. Das SourceForge-Rubyzip basiert auf java.util.zip
, was dazu geführt hat, dass es eine Klasse namens ZipOutputStream
hat. Ich weiß nicht, wie gut die rubyzip Implementierung ist, aber mit java.util.zip
Implementierung kann die OutputStream
auf ByteArrayOutputStream
eingestellt werden, FileOutputStream
, FilterOutputStream
, ObjectOutputStream
, OutputStream
, PipedOutputStream
....
Wenn das für die rubyzip Umsetzung gilt dann Es sollte eine Frage der Verwendung von ZipOutputStream
sein, um eine ByteArrayOutputStream
Art zu übergeben, die dazu führen würde, dass es in den Speicher ausgegeben wird.
Wenn es nicht in Rubyzip existiert, dann bin ich mir sicher, dass Sie immer Ihre eigene Implementierung schreiben und sie für die Aufnahme in Rubyzip einreichen können, da sie opensource ist.
Siehe [die Antwort von @vas] (http://stackoverflow.com/a/9712252/244128), es macht genau das, was Sie wollen! – maerics