浏览代码

fss final url.

deason 1 年之前
父节点
当前提交
e97200f2a5

+ 5 - 0
examcloud-support/src/main/java/cn/com/qmth/examcloud/support/fss/FssFactory.java

@@ -22,4 +22,9 @@ public class FssFactory {
         }
     }
 
+    public static FssService getInstance() {
+        // 默认通过内网访问
+        return getInstance(true);
+    }
+
 }

+ 29 - 0
examcloud-support/src/main/java/cn/com/qmth/examcloud/support/fss/FssHelper.java

@@ -15,6 +15,35 @@ public class FssHelper {
 
     private static final Logger log = LoggerFactory.getLogger(FssHelper.class);
 
+    /**
+     * 获取文件的最终完整访问路径(兼容旧数据)
+     *
+     * @param filePath 文件存储路径,格式示例:
+     *                 https://xxx.xxx/abc/123.jpg
+     *                 upyun-1://abc/123.jpg
+     *                 aliyun-1://abc/123.jpg
+     *                 aliyun-2://abc/123.jpg
+     *                 /abc/123.jpg
+     *                 abc/123.jpg
+     * @return 最终访问地址
+     */
+    public static String finalFileUrl(String filePath) {
+        if (StringUtils.isEmpty(filePath)) {
+            throw new RuntimeException("文件路径不能为空!");
+        }
+        if (filePath.startsWith("http") || filePath.startsWith("https")) {
+            return filePath;
+        }
+
+        filePath = filePath.replace("upyun-1://", "").replace("aliyun-1://", "").replace("aliyun-2://", "");
+
+        if (filePath.startsWith("/")) {
+            return FssProperty.FSS_URL_PREFIX + filePath;
+        }
+
+        return FssProperty.FSS_URL_PREFIX + FssProperty.FSS_SEPARATOR + filePath;
+    }
+
     /**
      * 创建文件目录
      */

+ 12 - 0
examcloud-support/src/test/java/cn/com/qmth/examcloud/support/test/OssClientTest.java

@@ -2,6 +2,7 @@ package cn.com.qmth.examcloud.support.test;
 
 import cn.com.qmth.examcloud.commons.util.FileUtil;
 import cn.com.qmth.examcloud.support.fss.FssFactory;
+import cn.com.qmth.examcloud.support.fss.FssHelper;
 import cn.com.qmth.examcloud.support.fss.FssProperty;
 import cn.com.qmth.examcloud.support.fss.FssService;
 import cn.com.qmth.examcloud.support.fss.model.FileInfo;
@@ -66,4 +67,15 @@ public class OssClientTest {
         // fssService.deleteFile(filePath);
     }
 
+    @Test
+    public void demoTest2() throws Exception {
+        FssProperty.FSS_URL_PREFIX = "https://ecs-test-static.qmth.com.cn";
+        System.out.println(FssHelper.finalFileUrl("upyun-1://abc/123.jpg"));
+        System.out.println(FssHelper.finalFileUrl("aliyun-1://abc/123.jpg"));
+        System.out.println(FssHelper.finalFileUrl("aliyun-2://abc/123.jpg"));
+        System.out.println(FssHelper.finalFileUrl("https://xxx.xxx/abc/123.jpg"));
+        System.out.println(FssHelper.finalFileUrl("/abc/123.jpg"));
+        System.out.println(FssHelper.finalFileUrl("abc/123.jpg"));
+    }
+
 }