Forráskód Böngészése

试卷代码提交

pans 6 hónapja
szülő
commit
9bf8de71fa

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

@@ -229,7 +229,7 @@ public class TranscodingServiceImpl implements TranscodingService {
 
                 List<String> videoList= Arrays.asList("wmv","avi","flv","mpeg","mpg","rmvb","mov","mkv");
 
-                List<String> wordList= Arrays.asList("doc","docx","ppt","pptx","xls","xlsx");
+                List<String> wordList= Arrays.asList("doc","docx","ppt","pptx","xls","xlsx","pdf");
 
 
                 ResourceFile fileBean = resourceFileMapper.selectById(userFile.getFileId());

+ 21 - 9
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/util/PdfUtils.java

@@ -2,11 +2,14 @@ package vip.xiaonuo.disk.util;
 
 import io.minio.DownloadObjectArgs;
 import io.minio.MinioClient;
+import io.minio.UploadObjectArgs;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.UUID;
 
 @Component
@@ -156,16 +159,25 @@ public class PdfUtils {
     }
 
     private void uploadToMinio(String filePath, String fileId,String objectName) throws Exception {
-        String fileName = new File(filePath).getName();
-//        minioClient.uploadObject(
-//                UploadObjectArgs.builder()
-//                        .bucket(bucketName)
-//                        .object("converted/"+fileId)
-//                        .filename(filePath)
-//                        .build());
-        s3MultiThreadMultipartUpload.uploadFile(filePath,fileName);
+    //    String fileName = new File(filePath).getName();
+        try {
+            minioClient.uploadObject(
+                    UploadObjectArgs.builder()
+                            .bucket(bucketName)
+                            .object("converted/"+getCurrentDate()+"/"+objectName)
+                            .filename(fileId)
+                            .contentType("application/pdf")
+                            .build());
+        } catch (Exception e) {
+            throw new RuntimeException("转换后的pdf上传minio报错=========================》",e);
+        }
+        //  s3MultiThreadMultipartUpload.uploadFile(filePath,fileName);
+    }
+    public String getCurrentDate() {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        String currentDate = sdf.format(new Date());
+        return currentDate;
     }
-
     private void cleanTempDir(String filePath,String outputPath) {
 //        File[] files = new File(tempDir).listFiles();
 //        if (files != null) {

+ 24 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/util/S3MultiThreadMultipartUpload.java

@@ -49,12 +49,24 @@ public class S3MultiThreadMultipartUpload {
         long start = System.currentTimeMillis();
         File file = new File(filePath);
         long fileSize = file.length();
+
+
+
+        // 如果文件小于分片大小,使用简单上传
+        if (fileSize < partSize) {
+            simpleUpload(s3, file, objectName);
+            System.out.println("Simple upload complete: " + objectName + ", time: " + (System.currentTimeMillis() - start) / 1000.0 + "s");
+            return;
+        }
+
+
         int partCount = (int) ((fileSize + partSize - 1) / partSize);
 
         // 1. 初始化分片上传
         CreateMultipartUploadResponse createResp = s3.createMultipartUpload(
                 CreateMultipartUploadRequest.builder()
                         .bucket(bucket)
+                        .contentType("application/pdf")
                         .key(objectName)
                         .build()
         );
@@ -125,6 +137,17 @@ public class S3MultiThreadMultipartUpload {
             executor.shutdown();
         }
     }
-
+    // 添加简单上传方法
+    private void simpleUpload(S3Client s3, File file, String objectName) throws Exception {
+        s3.putObject(
+                PutObjectRequest.builder()
+                        .bucket(bucket)
+                        .key(objectName)
+                        .contentLength(file.length())
+                        .contentType("application/pdf")
+                        .build(),
+                RequestBody.fromFile(file)
+        );
+    }
 
 }