|
@@ -26,6 +26,7 @@ import static org.apache.dolphinscheduler.common.constants.Constants.UTF_8;
|
|
|
import static org.apache.dolphinscheduler.common.constants.DateConstants.YYYYMMDDHHMMSS;
|
|
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
|
+import org.apache.commons.lang3.SystemUtils;
|
|
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
import java.io.File;
|
|
@@ -34,10 +35,17 @@ import java.io.FileOutputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
+import java.nio.file.Files;
|
|
|
import java.nio.file.NoSuchFileException;
|
|
|
+import java.nio.file.Path;
|
|
|
+import java.nio.file.attribute.FileAttribute;
|
|
|
+import java.nio.file.attribute.PosixFilePermission;
|
|
|
+import java.nio.file.attribute.PosixFilePermissions;
|
|
|
+import java.util.Set;
|
|
|
import java.util.zip.CRC32;
|
|
|
import java.util.zip.CheckedInputStream;
|
|
|
|
|
|
+import lombok.NonNull;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
/**
|
|
@@ -52,6 +60,11 @@ public class FileUtils {
|
|
|
|
|
|
public static final String KUBE_CONFIG_FILE = "config";
|
|
|
|
|
|
+ private static final String RWXR_XR_X = "rwxr-xr-x";
|
|
|
+
|
|
|
+ private static final FileAttribute<Set<PosixFilePermission>> PERMISSION_755 =
|
|
|
+ PosixFilePermissions.asFileAttribute(PosixFilePermissions.fromString(RWXR_XR_X));
|
|
|
+
|
|
|
private FileUtils() {
|
|
|
throw new UnsupportedOperationException("Construct FileUtils");
|
|
|
}
|
|
@@ -310,4 +323,15 @@ public class FileUtils {
|
|
|
return crcString;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Create a file with '755'.
|
|
|
+ */
|
|
|
+ public static void createFileWith755(@NonNull Path path) throws IOException {
|
|
|
+ if (SystemUtils.IS_OS_WINDOWS) {
|
|
|
+ Files.createFile(path);
|
|
|
+ } else {
|
|
|
+ Files.createFile(path, PERMISSION_755);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|