[pve-devel] Xen to Proxmox: one perl question

Wolfgang Bumiller w.bumiller at proxmox.com
Tue Jul 3 09:12:08 CEST 2018


On Mon, Jul 02, 2018 at 08:44:30PM +0200, Gandalf Corvotempesta wrote:
> I'm trying to convert my simple bash script to a perl one (hoping
> would be included in PVE), for directly convert a Xen VM to a PVE/KVM
> on ZFS, in a single pass.
> 
> I have one question: can someone tell me how to read a huge tar file
> (from a pipe) and extract one file at once?
> 
> Something like the following pseudocode:
> 
> $myTarFile = TAR::read(my_http_stream)
> foreach ( $myTarFile->extract() as $singleFIle ) {
>    doSomeThing($singleFile)
> }

I'd recommend looking at libarchive's API (Archive::Libarchive), that
should be capable of dealing with a stream.

> 
> I can't read all files inside the tarball, because this would require
> to download the whole file at first,
> then read it's content and then read each file one by one. It's too
> time consuming.

Or you just extract the files while downloading by piping to tar/bsdtar.
Also, seeing how this isn't a task you do 100 times a day every day,
time shouldn't be that much of an issue.




More information about the pve-devel mailing list