http://www.perlmonks.org?node_id=419209


in reply to RFC: Archive::Tar::Streamed

I had a similar need, but my files don't even exist on disk. I was building a web server that returns tars of files that came from other web servers. I never "cleanly" integrated my approach with Archive::Tar or packaged it up nicely, but here is the gist of it:

I take a callback from the caller, and call it to do any output. I pass the callback into HTTP::Request to retrieve the file from the remote site and pass it through to the web client.

for each file { HEAD the file on the remote server to get the file size use Archive::Tar::File's internal _format_tar_entry to write the t +ar header use HTTP::Request to retrieve the file from the remote server, pas +sing it the callback for output write TAR_PAD to fill out the BLOCK } write TAR_END x 2
Any ideas on a clean way to build a generic module that I could use are welcome...