You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gaël Lalire (Jira)" <ji...@apache.org> on 2021/04/14 11:39:00 UTC

[jira] [Created] (COMPRESS-574) Byte range support in archive creation

Gaël Lalire created COMPRESS-574:
------------------------------------

             Summary: Byte range support in archive creation
                 Key: COMPRESS-574
                 URL: https://issues.apache.org/jira/browse/COMPRESS-574
             Project: Commons Compress
          Issue Type: Improvement
          Components: Archivers
            Reporter: Gaël Lalire
         Attachments: DynamicZip.java, DynamicZipTest.java

When you have a ZIP which contains _N_ components and you want to let the user choose which components it needs, you need to create _2^N - 1_ ZIP.

So the idea is to store each component once (or twice if you want both deflated and stored version), and create the ZIP on the fly.

For the moment you can stream with a ZipOutputStream but if you need an InputStream things get a lot harder. I guess programs are writing the ZIP to a file system and read from it after, so not really a streaming anymore.

Also ZipOutputStream will never allow you to resume from a byte range, you need to generate all previous data.

So I made a class to do that, I think such functionality has its place in commons compress.

You can see my code attached and adapt it for better integration / other archive type support or simply to get inspired.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)