diff --git a/kop-common-lib/pom.xml b/kop-common-lib/pom.xml
index 16cda10b1fb445050a3b90798b8293c6e7cb959a..408d548c463afcd517e80bde937ee7dc4ea8f5a9 100644
--- a/kop-common-lib/pom.xml
+++ b/kop-common-lib/pom.xml
@@ -40,6 +40,7 @@
 		<maven.compiler.source>17</maven.compiler.source>
 		<maven.compiler.target>17</maven.compiler.target>
 		<mockito.version>4.8.1</mockito.version>
+		
 	</properties>
 
 	<dependencyManagement>
diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/TempFileUtils.java b/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/TempFileUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..d68ee7f708b29fe81cf1d455a8df01ec3562fe61
--- /dev/null
+++ b/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/TempFileUtils.java
@@ -0,0 +1,74 @@
+package de.itvsh.kop.common.binaryfile;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
+
+import org.apache.commons.io.FileUtils;
+
+import de.itvsh.kop.common.errorhandling.TechnicalException;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public class TempFileUtils {
+	static final String TMP_FILE_PREFIX = "filecached-inputstream";
+	static final String TMP_FILE_SUFFIX = ".ozg-cloud.tmp";
+
+	private static final String ERROR_MSG = "Error writing file to temp file.";
+
+	public static File writeTmpFile(InputStream contentStream) {
+		try {
+			var tmpFile = createTmpFile();
+
+			Files.copy(contentStream, tmpFile, StandardCopyOption.REPLACE_EXISTING);
+			contentStream.close();
+			return tmpFile.toFile();
+		} catch (IOException e) {
+			throw new TechnicalException(ERROR_MSG, e);
+		}
+	}
+
+	public static File writeTmpFile(String stringData) {
+		try {
+			Path tmpFile = createTmpFile();
+
+			try (var writer = new FileWriter(tmpFile.toFile())) {
+				writer.write(stringData);
+				writer.flush();
+			}
+
+			return tmpFile.toFile();
+		} catch (IOException e) {
+			throw new TechnicalException(ERROR_MSG, e);
+		}
+	}
+
+	public static File writeTmpFile(byte[] data) {
+		try {
+			Path tmpFile = createTmpFile();
+
+			FileUtils.writeByteArrayToFile(tmpFile.toFile(), data);
+
+			return tmpFile.toFile();
+		} catch (IOException e) {
+			throw new TechnicalException(ERROR_MSG, e);
+		}
+
+	}
+
+	public static Path createTmpFile() {
+		try {
+			var tmpFile = Files.createTempFile(TMP_FILE_PREFIX, TMP_FILE_SUFFIX);
+			tmpFile.toFile().deleteOnExit();
+			return tmpFile;
+		} catch (IOException e) {
+			throw new TechnicalException("Error creating temporary file.", e);
+		}
+
+	}
+}