Saturday, June 20, 2009

Split ZIP Support in upcoming JoomlaPack 2.3

In my previous blog posts I described some of the new features arriving with JoomlaPack 2.3 and presented the brand new JPI4 installer. This time, I'd like to talk about a different feature, less visible, but very important nonetheless: Split archive support.

Some hosts impose a hard limit on the maximum size a file can have on their server. It's different than the account quota we're all used to. Whereas account quota limits the total size of files (and database contents) your account can hold in total, the maximum size limit imposes a restriction on the size a single file can have on the server. When your JoomlaPack backup archive tries to grow beyond this size (usually, that's 10Mb), your host abruptly ends the backup process throwing an HTTP 500 Internal Server Error.

The ZIP archive format supports a feature called spanning or spliting. A ZIP archive utilizing this feature can span multiple files of a predetermined maximum file size. For instance, you can have 20Mb of data spanning four 5Mb files. The unarchiver application will treat them as a single archive when extracting the ZIP file. JoomlaPack 2.3 is now able to take advantage of this feature with a new configuration option in the Advanced section. You simply set the maximum size of each part and let it work out the spanning details.

This new feature also caused an avalanche of required changes in pretty much all of the JoomlaPack Suite software components. For example, the component must support downloading the multiple parts. Kickstart has to expect and handle multi-part ZIP files. The same goes with eXtract, as it presently doesn't know about split ZIPs. Last, but not least, the JoomlaPack Remote application will also have to handle downloading the multi-part ZIP files.

Rome wasn't built overnight, neither does JoomlaPack. So far we have managed to implement the generation of split ZIPs and their handling in the Administer Backup Files page. Before the beta is released, Kickstart will also support split ZIPs. By the time 2.3 goes stable, eXtract and Remote will also support split ZIPs.

Our next goal is to give the JPA engine the same support. It's an equally engaging process, so it's not possible to predict if this will make it to the stable. It highly depends on the available time I've got to develop such a thing.

Meanwhile, you can try - at your own risk! - the split ZIP support by downloading the latest developer's release from the Bleeding Edge.