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

feat: 文件上传计算md5

pudongliang 4 hónapja
szülő
commit
18eb1aca28

+ 2 - 0
src/main/java/com/moka/gdtauto/entity/OssFile.java

@@ -53,6 +53,8 @@ public class OssFile {
      */
     private String fileUrl;
 
+    private String fileMd5;
+
     /**
      * OSS对象Key
      */

+ 1 - 1
src/main/java/com/moka/gdtauto/util/SiteConfUtil.java

@@ -123,7 +123,7 @@ public class SiteConfUtil {
             Arrays.asList(
                 "SITE_SET_WECHAT",
                 "SITE_SET_WECHAT_PLUGIN",
-                "SITE_SET_SEARCH_SCENE"
+                "SITE_SET_SEARCH_SCENE" 
             )
         );
     }

+ 58 - 0
src/test/java/com/moka/gdtauto/service/OssFileMd5.java

@@ -0,0 +1,58 @@
+package com.moka.gdtauto.service;
+
+import com.aliyun.oss.common.utils.BinaryUtil;
+import com.moka.gdtauto.GdtAutoApplication;
+import com.moka.gdtauto.entity.OssFile;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.io.FileOutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.List;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * mvn test -Dtest=com.moka.gdtauto.service.OssFileMd5#testOssFileMd5 -Dspring.profiles.active=test
+ */
+@SpringBootTest(classes = GdtAutoApplication.class)
+@ActiveProfiles("test")
+public class OssFileMd5 {
+    @Autowired
+    private OssFileService ossFileService;
+
+    @Test
+    public void testOssFileMd5() {
+        List<OssFile> ossFileList = ossFileService.list();
+        for (OssFile ossFile : ossFileList) {
+            try {
+                URL url = new URL(ossFile.getFileUrl());
+                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+                connection.setConnectTimeout(10000);
+                connection.setReadTimeout(30000);
+                connection.setRequestMethod("GET");
+                connection.connect();
+
+                int responseCode = connection.getResponseCode();
+                if (responseCode != HttpURLConnection.HTTP_OK) {
+                    throw new Exception("下载文件失败,HTTP状态码: " + responseCode);
+                }
+
+                try (java.io.InputStream inputStream = connection.getInputStream()) {
+                    String md5 = BinaryUtil.toBase64String(BinaryUtil.calculateMd5(inputStream.readAllBytes()));
+                    ossFileService.lambdaUpdate()
+                        .eq(OssFile::getId, ossFile.getId())
+                        .set(OssFile::getFileMd5, md5).update();
+                } finally {
+                    connection.disconnect();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            } 
+        }
+    }
+}