|
|
@@ -12,6 +12,7 @@ import java.io.*;
|
|
|
import java.security.NoSuchAlgorithmException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.UUID;
|
|
|
|
|
|
@Component
|
|
|
public class VideoConverter {
|
|
|
@@ -28,6 +29,7 @@ public class VideoConverter {
|
|
|
private String BUCKET_NAME;
|
|
|
@Value("${ufop.minio.FFMPEG_PATH}")
|
|
|
private String FFMPEG_PATH;
|
|
|
+ private final String tempDir = System.getProperty("java.io.tmpdir") + "/minio-converter/";
|
|
|
|
|
|
|
|
|
public void convertAndUpload(String inputKey, String outputPrefix, String[] formats) throws Exception {
|
|
|
@@ -37,21 +39,22 @@ public class VideoConverter {
|
|
|
.build();
|
|
|
|
|
|
// 创建临时目录
|
|
|
- File tempDir = new File("temp");
|
|
|
- if (!tempDir.exists()) {
|
|
|
- tempDir.mkdir();
|
|
|
- }
|
|
|
+// File tempDir = new File("temp");
|
|
|
+// if (!tempDir.exists()) {
|
|
|
+// tempDir.mkdir();
|
|
|
+// }
|
|
|
List<File> filesToDelete = new ArrayList<>(); // 待删除文件列表
|
|
|
-
|
|
|
+ String fileName = new File(inputKey).getName();
|
|
|
+ String uniqueName = UUID.randomUUID() + "_" + fileName;
|
|
|
+ File tempFile = new File(tempDir, uniqueName);
|
|
|
try {
|
|
|
- // 下载源文件
|
|
|
- File localInput = new File(tempDir, inputKey);
|
|
|
- downloadFromMinio(minioClient, BUCKET_NAME, inputKey, localInput);
|
|
|
- filesToDelete.add(localInput); // 添加到删除列表
|
|
|
+
|
|
|
+ downloadFromMinio(minioClient, BUCKET_NAME, inputKey, tempFile);
|
|
|
+ filesToDelete.add(tempFile); // 添加到删除列表
|
|
|
// 执行格式转换
|
|
|
for (String format : formats) {
|
|
|
File outputFile = new File(tempDir, outputPrefix + "." + format);
|
|
|
- convertVideo(localInput.getAbsolutePath(), outputFile.getAbsolutePath(), format);
|
|
|
+ convertVideo(tempFile.getAbsolutePath(), outputFile.getAbsolutePath(), format);
|
|
|
|
|
|
// 上传转换后的文件
|
|
|
uploadToMinio(minioClient, BUCKET_NAME, outputFile.getName(), outputFile);
|