Archive::Zip, irgendwelche Groessenbeschraenkungen bekannt?

Archive::Zip, irgendwelche Groessenbeschraenkungen bekannt?

am 02.02.2007 14:06:24 von Gerhard Hofmann

Hallo zusammen,

ich moechte mit Archive::Zip einige Ordner samt Unterordnern in ein
ZIP-File packen. Mein erster Ansatz hierzu siehe unten.

Das ganze funktioniert soweit auch, allerdings frage ich mich, ob dieses
Verfahren auch geht, wenn die zu packenden Datenmengen sehr gross sind,
z.B ueber ein Gigabyte.

Sind Euch irgendwelche Grenzen bekannt, was die Erstellung von
ZIP-Archiven betrifft? Frage deshalb, weil ich beim Erstellen von .tgz
Files mittels Archive::Tar schonmal das Problem hatte, dass das bei
Datenmengen von mehreren hundert MB auf Fehler lief.

Gruss
Gerhard


----
#!/usr/bin/perl
use strict;
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
my $zip = Archive::Zip->new();
# Unterverzeichnisse die gesichert werden sollen
# Es werden in den angegebenenen Verzeichnissen alle
# Unterverzeichnisse und Dateien in das Zip Archiv gepackt
$zip->addTree("d:/humor", "humor");
$zip->addTree("d:/next_update", "next_update");
$zip->addTree("d:/unl404", "unl404");
$zip->writeToFileNamed("d:/temp/backup.zip");

if (-e "d:/temp/backup.zip") {
print "Backup erstellt";
}
else {
print "Keine Datei vorhanden";
}
----

Re: Archive::Zip, irgendwelche Groessenbeschraenkungen bekannt?

am 02.02.2007 19:31:49 von Guido Ostkamp

Gerhard Hofmann wrote:
> ich moechte mit Archive::Zip einige Ordner samt Unterordnern in ein
> ZIP-File packen. Mein erster Ansatz hierzu siehe unten.
>
> Das ganze funktioniert soweit auch, allerdings frage ich mich, ob
> dieses Verfahren auch geht, wenn die zu packenden Datenmengen sehr
> gross sind, z.B ueber ein Gigabyte.

Ich halte es für sehr wahrscheinlich, daß Archive::Zip die Generierung
des ZipFiles zunächst rein im Hauptspeicher durchführt und erst auf
Kommando das Ergebnis in eine Datei auf der Festplatte überführt. In
diesem Fall dürfte dann wohl klar sein, wo die Beschränkung liegt,
nämlich in der Größe des Hauptspeichers und der OS-Grenze des maximal
allokierbaren Speichers.

Die Benutzung eines externen Tools wäre also anzuraten, wobei sich
sowieso fragt, ob es denn unbedingt ZIP sein muß. Diese Methode zur
Komprimierung ist doch schon längst überholt und die Rate viel zu
schlecht.

Gruß

Guido

Re: Archive::Zip, irgendwelche Groessenbeschraenkungen bekannt?

am 02.02.2007 20:25:08 von Slaven Rezic

Gerhard Hofmann writes:

> Hallo zusammen,
>
> ich moechte mit Archive::Zip einige Ordner samt Unterordnern in ein
> ZIP-File packen. Mein erster Ansatz hierzu siehe unten.
>
> Das ganze funktioniert soweit auch, allerdings frage ich mich, ob
> dieses Verfahren auch geht, wenn die zu packenden Datenmengen sehr
> gross sind, z.B ueber ein Gigabyte.
>
> Sind Euch irgendwelche Grenzen bekannt, was die Erstellung von
> ZIP-Archiven betrifft? Frage deshalb, weil ich beim Erstellen von .tgz
> Files mittels Archive::Tar schonmal das Problem hatte, dass das bei
> Datenmengen von mehreren hundert MB auf Fehler lief.
>

Zu Archive::Zip kann ich nichts sagen, aber für tar gibt es die
Varianten Archive::Tar::Streamed und Archive::Tar::Wrapper, die
konservativer mit Memory umgehen.

Gruß,
Slaven

--
Slaven Rezic - slaven rezic de

tktimex - time recording tool
http://sourceforge.net/projects/ptktools/