rotdrop / nextcloud-app-files-archive

Archive inspection and extraction as Nextcloud app.
Other
9 stars 4 forks source link

ZIP file spanning/splitting not supported #3

Closed TtuxX closed 1 year ago

TtuxX commented 1 year ago

Hi there !

While trying to test the possibilities and debug #2, I encountered a strange error message:

This is the process I use to reproduce this error: 1 - Select files from NC interface 2 - Use "Compress to zip" from the context menu (thanks to "Zipper" Nextcloud extension) 3 - View the created .zip archive 4 - Try to extract it with your app 5 - Get a 500 server error, with the following message in the log files: "PhpZip\Exception\ZipException: ZIP file spanning/splitting is not supported!"

Is it due to your app or, maybe more logical, to the options used by Zipper app when compressing the archive ?

Best regards

rotdrop commented 1 year ago

Maybe a mixture. Currently I resorted to Nelexa-Zip (see README.md) because the PHP ZIP extension has problems with unsupported encryption methods that Nelexa Zip has not. You could edit lib/Backend/ArchiveBackend.php and give the ZIP-backends another ranking: https://github.com/rotdrop/nextcloud-app-files-archive/blob/1d3c3cb2406ea379378e5405779ebcf692639d6d/lib/Backend/ArchiveBackend.php#L43-L48

I suppose "Zipper" just uses the PHP Zip-extension, so setting that one highest should fix it, but break support for more recent ZIP formats. Perhaps "SevenZip" would be best, but I did not test yet.

TtuxX commented 1 year ago

Thank you for your reply ! I could maybe then raise an issue in the Zipper repo?

rotdrop commented 1 year ago

Thank you for your reply ! I could maybe then raise an issue in the Zipper repo?

I do not think that Zipper is the problem, but the Nelexa Zip driver which maybe does not support the features used by the Zipper app. I think one should test whether perhaps the SevenZip driver works (set its ranking to > 30 in line 46). Then check whether the PHP standard zip driver works (line 45).

Unfortunately the ZIP standard has grown over years and the different open-source tools implementing "the" ZIP format do not all support the same feature sets.

rotdrop commented 1 year ago

This should be solved by the latest pre-release v1.0.3-alpha.

Can you please give it a try?

TtuxX commented 1 year ago

Thank you very much! Unfortunately it does not work when I try to extract archives which have been created by Zipper and I still get the same exception message in my log files, along with the 500 error.

rotdrop commented 1 year ago

Could you please post the exception message and add a log message after the following line:

https://github.com/rotdrop/nextcloud-app-files-archive/blob/2bb66cba29e9f12981083aa2f247a3aa8b2eba86/lib/Backend/ArchiveBackend.php#L80

\OCP\Util::writeLog('files_archive', 'DRIVER IN USE: ' . $driver, \OCP\Util::INFO);

Thank you! I have tried with zippy and do no longer experience problems.

rotdrop commented 1 year ago

Could you please post the exception message and add a log message after the following line:

https://github.com/rotdrop/nextcloud-app-files-archive/blob/2bb66cba29e9f12981083aa2f247a3aa8b2eba86/lib/Backend/ArchiveBackend.php#L80

\OCP\Util::writeLog('files_archive', 'DRIVER IN USE: ' . $driver, \OCP\Util::INFO);

Thank you! I have tried with zippy and do no longer experience problems.

By "zippy" do you mean the driver UnifiedArchive\Drivers\AlchemyZippy or the Nextcloud app zipper AKA files_zip?

TtuxX commented 1 year ago

By "zippy" do you mean the driver UnifiedArchive\Drivers\AlchemyZippy or the Nextcloud app zipper AKA files_zip?

I mean Nextcloud app "Zipper"

rotdrop commented 1 year ago

So I can close it then. Thanks for testing!