fix: use zip64 for archive downloads

fixes an issue with series or read list archives that contain an entry over 4GB
At this point every archiver should support zip64 so it should be fine to always use it
This commit is contained in:
Snd-R 2022-06-30 11:53:28 +03:00 committed by GitHub
parent 61f519a6a0
commit 73949d514e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 0 deletions

View file

@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Content
import io.swagger.v3.oas.annotations.media.Schema
import io.swagger.v3.oas.annotations.responses.ApiResponse
import mu.KotlinLogging
import org.apache.commons.compress.archivers.zip.Zip64Mode
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream
import org.apache.commons.io.IOUtils
@ -398,6 +399,7 @@ class ReadListController(
ZipArchiveOutputStream(responseStream).use { zipStream ->
zipStream.setMethod(ZipArchiveOutputStream.DEFLATED)
zipStream.setLevel(Deflater.NO_COMPRESSION)
zipStream.setUseZip64(Zip64Mode.Always)
books.forEach { (index, book) ->
val file = FileSystemResource(book.path)
if (!file.exists()) {

View file

@ -8,6 +8,7 @@ import io.swagger.v3.oas.annotations.media.Content
import io.swagger.v3.oas.annotations.media.Schema
import io.swagger.v3.oas.annotations.responses.ApiResponse
import mu.KotlinLogging
import org.apache.commons.compress.archivers.zip.Zip64Mode
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream
import org.apache.commons.io.IOUtils
@ -649,6 +650,7 @@ class SeriesController(
ZipArchiveOutputStream(responseStream).use { zipStream ->
zipStream.setMethod(ZipArchiveOutputStream.DEFLATED)
zipStream.setLevel(Deflater.NO_COMPRESSION)
zipStream.setUseZip64(Zip64Mode.Always)
books.forEach { book ->
val file = FileSystemResource(book.path)
if (!file.exists()) {