ソースを参照

完善文件转换的视频转换部分

honorfire 8 ヶ月 前
コミット
55708df9b2

+ 2 - 4
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseAuditRecordController.java

@@ -214,10 +214,7 @@ public class CourseAuditRecordController {
     public CommonResult<String> updateStatus(@RequestBody @Valid CourseAuditRecordEditParam courseAuditRecordEditParam) {
         if(StringUtils.isEmpty(courseAuditRecordEditParam.getIds()))return CommonResult.error("id组不能为空");
         if(StringUtils.isEmpty(courseAuditRecordEditParam.getVerifyStatus()))return CommonResult.error("审核状态不能为空");
-        //校验
-        //0未发布,1待审核,2已发布,3未通过,4已删除
-        List<String> VerifyStatusList = Arrays.asList("1","2","3","4");
-        if(!VerifyStatusList.contains(courseAuditRecordEditParam.getVerifyStatus()))return CommonResult.error("审核状态错误");
+
         if("1".equals(courseAuditRecordEditParam.getVerifyStatus()))
         {
             if(StringUtils.isEmpty(courseAuditRecordEditParam.getResourceDesc()) )return CommonResult.error("发布未传资源信息");
@@ -276,6 +273,7 @@ public class CourseAuditRecordController {
     public CommonResult<String> addViewCount(@RequestBody @Valid CourseAuditRecordEditParam courseAuditRecordEditParam) {
         CourseAuditRecord courseAuditRecord=courseAuditRecordService.queryEntity(courseAuditRecordEditParam.getId());
         courseAuditRecord.setViewCount(String.valueOf(Integer.valueOf(courseAuditRecord.getViewCount())+1));
+        courseAuditRecordService.editOne(courseAuditRecord);
         return CommonResult.ok();
     }
 

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/TranscodingServiceImpl.java

@@ -160,7 +160,7 @@ public class TranscodingServiceImpl implements TranscodingService {
                 }else{
                     ResourceFile newFile = new ResourceFile();
                     newFile.setFileId(fileBean.getFileId());
-                    newFile.setPreviewFileUrl(fileBean.getFileUrl());
+                    newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
                     resourceFileMapper.updateById(newFile);
                 }
             } catch (Exception ex) {

+ 13 - 10
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/util/VideoConverter.java

@@ -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);