Come posso tarare file più grandi della memoria fisica usando Perl's Archive :: Tar?

StackOverflow https://stackoverflow.com/questions/653127

  •  19-08-2019
  •  | 
  •  

Domanda

Sto usando il modulo Archive :: Tar di Perl. Il problema è che estrae tutto dalla memoria e fa l'archiviazione e quindi scrive sul file system in modo che vi sia una limitazione sulla dimensione massima del file che può essere archiviata. Il più delle volte dice che non c'è memoria. Nel caso di GNU tar, prende parte del file, lo archivia e lo scrive nella memoria in modo che possa gestire file di qualsiasi dimensione. Come posso farlo usando il modulo Perl's Archive :: Tar.

È stato utile?

Soluzione

Sembra che ci sia un modulo diverso che non utilizza una struttura in memoria: Archive :: Tar :: Streamed . Il rovescio della medaglia è che richiede tar per essere disponibile sul sistema su cui è in esecuzione. Tuttavia, è meglio del catrame di marionette da te stesso.

Altri suggerimenti

Sembra che Archive :: Tar :: Wrapper è il tuo migliore scommessa. Non l'ho provato da solo, ma utilizza l'eseguibile tar del tuo sistema e non mantiene i file in memoria.

Contrariamente a Chas. La risposta di Owen, Archive :: Tar :: Streamed do conserva i file in memoria e non non utilizza il tar del sistema. In realtà utilizza Archive :: Tar internamente, ma elabora un file alla volta ( sfruttando il fatto che gli archivi di catrame possono essere concatenati). Ciò significa che Archive :: Tar :: Streamed è in grado di gestire archivi più grandi della memoria, purché ogni singolo file nell'archivio si adatti alla memoria. Ma non è quello che hai chiesto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top