Pull request #603: RED-5248: Fix handling of temp files
Merge in RED/persistence-service from RED-5248 to master * commit 'abea17381f12891846b1eb480e60bfd2e93e2a5b': RED-5248: Fix handling of temp files
This commit is contained in:
commit
cd92696e33
@ -6,10 +6,6 @@ import java.io.FileInputStream;
|
|||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.attribute.FileAttribute;
|
|
||||||
import java.nio.file.attribute.PosixFilePermission;
|
|
||||||
import java.nio.file.attribute.PosixFilePermissions;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -17,8 +13,6 @@ import java.util.Set;
|
|||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
import org.apache.commons.lang3.SystemUtils;
|
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
@ -35,20 +29,7 @@ public class FileSystemBackedArchiver implements AutoCloseable {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public FileSystemBackedArchiver() {
|
public FileSystemBackedArchiver() {
|
||||||
|
|
||||||
if (SystemUtils.IS_OS_UNIX) {
|
tempFile = FileUtils.createTempFile("archive", ".zip");
|
||||||
FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString("rwx------"));
|
|
||||||
tempFile = Files.createTempFile("archive", ".zip", attr).toFile();
|
|
||||||
} else {
|
|
||||||
tempFile = Files.createTempFile("archive", ".zip").toFile();
|
|
||||||
boolean isReadable = tempFile.setReadable(true, true);
|
|
||||||
boolean isWritable = tempFile.setWritable(true, true);
|
|
||||||
boolean isExecutable = tempFile.setExecutable(true, true);
|
|
||||||
|
|
||||||
if (!isReadable || !isWritable || !isExecutable) {
|
|
||||||
log.warn("Could not archive temporary zip file.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
zipOutputStream = new ZipOutputStream(new FileOutputStream(tempFile));
|
zipOutputStream = new ZipOutputStream(new FileOutputStream(tempFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -31,6 +31,15 @@ public class FileUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public File createTempFile(String filenamePrefix, String filenameSuffix) throws IOException {
|
||||||
|
|
||||||
|
File tempFile = Files.createTempFile(filenamePrefix, filenameSuffix).toFile();
|
||||||
|
setRWPermissionsOnlyForOwner(tempFile);
|
||||||
|
|
||||||
|
return tempFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public File createTempFile(byte[] content, String filenamePrefix, String filenameSuffix) throws IOException {
|
public File createTempFile(byte[] content, String filenamePrefix, String filenameSuffix) throws IOException {
|
||||||
|
|
||||||
File tempFile = Files.createTempFile(filenamePrefix, filenameSuffix).toFile();
|
File tempFile = Files.createTempFile(filenamePrefix, filenameSuffix).toFile();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user