From 3f20fadb812c0feeb8c8ea5ed315e8bf9bd87911 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 23 Jun 2021 08:09:59 +0100 Subject: [PATCH] When zipping files, rename the outer folder to "data" instead of using the original folder name. This means that the data can be accessed deterministically without the need to first lookup the folder name. --- src/main/java/org/qortal/api/resource/DataResource.java | 2 +- src/main/java/org/qortal/utils/ZipUtils.java | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/qortal/api/resource/DataResource.java b/src/main/java/org/qortal/api/resource/DataResource.java index ebfe20a9..dafdfff7 100644 --- a/src/main/java/org/qortal/api/resource/DataResource.java +++ b/src/main/java/org/qortal/api/resource/DataResource.java @@ -131,7 +131,7 @@ public class DataResource { // Firstly zip up the directory String outputFilePath = "temp/zipped.zip"; try { - ZipUtils.zip(directoryPath, outputFilePath); + ZipUtils.zip(directoryPath, outputFilePath, "data"); } catch (IOException e) { LOGGER.info("Unable to zip directory", e); throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.INVALID_DATA); diff --git a/src/main/java/org/qortal/utils/ZipUtils.java b/src/main/java/org/qortal/utils/ZipUtils.java index a459304b..0b6a892b 100644 --- a/src/main/java/org/qortal/utils/ZipUtils.java +++ b/src/main/java/org/qortal/utils/ZipUtils.java @@ -18,11 +18,14 @@ import java.util.zip.ZipOutputStream; public class ZipUtils { - public static void zip(String sourcePath, String destFilePath) throws IOException { + public static void zip(String sourcePath, String destFilePath, String fileName) throws IOException { File sourceFile = new File(sourcePath); + if (fileName == null) { + fileName = sourceFile.getName(); + } FileOutputStream fileOutputStream = new FileOutputStream(destFilePath); ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream); - ZipUtils.zip(sourceFile, sourceFile.getName(), zipOutputStream); + ZipUtils.zip(sourceFile, fileName, zipOutputStream); zipOutputStream.close(); fileOutputStream.close(); }