소스 검색

oss路径更改

wangliang 5 년 전
부모
커밋
2d61d6099e

+ 2 - 3
stmms-ms-accesscontrol/src/main/java/cn/com/qmth/stmms/ms/accesscontrol/config/AccessConfig.java

@@ -3,7 +3,6 @@ package cn.com.qmth.stmms.ms.accesscontrol.config;
 import cn.com.qmth.stmms.ms.accesscontrol.LoginInterceptor;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@@ -31,7 +30,7 @@ public class AccessConfig extends WebMvcConfigurerAdapter {
 
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor( loginInterceptor()).addPathPatterns("/api/**").excludePathPatterns("/api/admin/users/login",
-                "/api/user/login","/api/user/getClientUser","/api/exam/students","/api/upload/student/*","/api/file/image/**","/api/marklog/saveCollectLog","/api/file/ms-slice/**","/api/subject/collect-config","/api/file/ms-sheet/**");
+        registry.addInterceptor(loginInterceptor()).addPathPatterns("/api/**").excludePathPatterns("/api/admin/users/login",
+                "/api/user/login", "/api/user/getClientUser", "/api/exam/students", "/api/upload/student/*", "/api/file/image/**", "/api/marklog/saveCollectLog", "/api/file/ms-slice/**", "/api/subject/collect-config", "/api/file/ms-sheet/**", "/api/oss/**");
     }
 }

+ 61 - 0
stmms-ms-collect/src/main/java/cn/com/qmth/stmms/ms/collect/api/CollectApi.java

@@ -5,10 +5,12 @@ import cn.com.qmth.stmms.ms.admin.service.DataUploadService;
 import cn.com.qmth.stmms.ms.collect.dto.CollectStuDTO;
 import cn.com.qmth.stmms.ms.collect.dto.CollectSubjectDTO;
 import cn.com.qmth.stmms.ms.collect.dto.LoginDTO;
+import cn.com.qmth.stmms.ms.commons.config.AliYunOssConfig;
 import cn.com.qmth.stmms.ms.commons.config.ImageCompressionConfig;
 import cn.com.qmth.stmms.ms.commons.config.ImageConfig;
 import cn.com.qmth.stmms.ms.commons.config.SystemConfig;
 import cn.com.qmth.stmms.ms.commons.constant.SystemConstant;
+import cn.com.qmth.stmms.ms.commons.utils.CommandUtil;
 import cn.com.qmth.stmms.ms.commons.utils.MD5Util;
 import cn.com.qmth.stmms.ms.commons.utils.image.ImageCompression;
 import cn.com.qmth.stmms.ms.core.domain.MarkSubject;
@@ -31,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.FileCopyUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -76,6 +79,9 @@ public class CollectApi {
     @Autowired
     ImageConfig imageConfig;
 
+    @Resource
+    AliYunOssConfig aliYunOssConfig;
+
     @RequestMapping("user/login")
     public LoginDTO login(@RequestParam String loginname, @RequestParam String password) {
         LoginDTO loginDTO = null;
@@ -511,4 +517,59 @@ public class CollectApi {
         markSubjectRepo.save(markSubject);
         return true;
     }
+
+    /**
+     * 执行oss脚本
+     *
+     * @return
+     */
+    @RequestMapping(value = "oss/execScript/{workId}", method = RequestMethod.GET)
+    public boolean execScript(@PathVariable Long workId) {
+        try {
+//            String result = CommandUtil.run("/Users/king/ossutilmac64 cp -r /Users/king/stmms-ms/static/images/ oss://epcc-test/ms/images/ -u");
+            String imageResult = CommandUtil.run(new StringJoiner("").add(aliYunOssConfig.getUtil()).add(" ").add(systemConfig.getImageDir()).add(" ").add(aliYunOssConfig.getImageDir()).toString());
+            LOGGER.info("oss/execScript imageResult:{}", imageResult);
+            String thumbResult = CommandUtil.run(new StringJoiner("").add(aliYunOssConfig.getUtil()).add(" ").add(systemConfig.getThumbDir()).add(" ").add(aliYunOssConfig.getThumbDir()).toString());
+            LOGGER.info("oss/execScript thumbResult:{}", thumbResult);
+            String sheetResult = CommandUtil.run(new StringJoiner("").add(aliYunOssConfig.getUtil()).add(" ").add(systemConfig.getSheetDir()).add(" ").add(aliYunOssConfig.getSheetDir()).toString());
+            LOGGER.info("oss/execScript sheetResult:{}", sheetResult);
+            String watermarkResult = CommandUtil.run(new StringJoiner("").add(aliYunOssConfig.getUtil()).add(" ").add(systemConfig.getWatermark()).add(" ").add(aliYunOssConfig.getWatermark()).toString());
+            LOGGER.info("oss/execScript watermarkResult:{}", watermarkResult);
+            deleteFile(new File(systemConfig.getImageDir() + File.separator + workId));
+            deleteFile(new File(systemConfig.getThumbDir() + File.separator + workId));
+            deleteFile(new File(systemConfig.getSheetDir() + File.separator + workId));
+            deleteFile(new File(systemConfig.getWatermark() + File.separator + workId));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 删除文件夹
+     *
+     * @param file
+     */
+    public void deleteFile(File file) throws Exception {
+        //判断文件不为null或文件目录存在
+        if (Objects.isNull(file) || !file.exists()) {
+            LOGGER.info(file.getAbsolutePath() + " 文件删除失败,请检查文件路径是否正确");
+            throw new Exception("无需重复上传");
+        }
+        //取得这个目录下的所有子文件对象
+        File[] files = file.listFiles();
+        //遍历该目录下的文件对象
+        for (File f : files) {
+            //打印文件名
+            //判断子目录是否存在子目录,如果是文件则删除
+            if (f.isDirectory()) {
+                deleteFile(f);
+            } else {
+                f.delete();
+            }
+        }
+        //删除空文件夹  for循环已经把上一层节点的目录清空。
+        file.delete();
+    }
 }

+ 5 - 0
stmms-ms-commons/pom.xml

@@ -66,5 +66,10 @@
             <!--<artifactId>swagger-models</artifactId>-->
             <!--<version>1.5.21</version>-->
         <!--</dependency>-->
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>3.8.0</version>
+        </dependency>
     </dependencies>
 </project>

+ 55 - 11
stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/config/AliYunOssConfig.java

@@ -24,20 +24,56 @@ public class AliYunOssConfig {
 
     private String bucket;
 
-    private String tmpdir;
+    private String imageDir;
 
-    /**
-     * @return the tmpdir
-     */
-    public String getTmpdir() {
-        return tmpdir;
+    private String thumbDir;
+
+    private String sheetDir;
+
+    private String watermark;
+
+    private String util;
+
+    private String url;
+
+    public String getImageDir() {
+        return imageDir;
     }
 
-    /**
-     * @param tmpdir the tmpdir to set
-     */
-    public void setTmpdir(String tmpdir) {
-        this.tmpdir = tmpdir;
+    public void setImageDir(String imageDir) {
+        this.imageDir = imageDir;
+    }
+
+    public String getThumbDir() {
+        return thumbDir;
+    }
+
+    public void setThumbDir(String thumbDir) {
+        this.thumbDir = thumbDir;
+    }
+
+    public String getSheetDir() {
+        return sheetDir;
+    }
+
+    public void setSheetDir(String sheetDir) {
+        this.sheetDir = sheetDir;
+    }
+
+    public String getWatermark() {
+        return watermark;
+    }
+
+    public void setWatermark(String watermark) {
+        this.watermark = watermark;
+    }
+
+    public String getUtil() {
+        return util;
+    }
+
+    public void setUtil(String util) {
+        this.util = util;
     }
 
     /**
@@ -103,4 +139,12 @@ public class AliYunOssConfig {
     public void setBucket(String bucket) {
         this.bucket = bucket;
     }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
 }

+ 39 - 4
stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/config/ImageServerConfig.java

@@ -3,6 +3,8 @@ package cn.com.qmth.stmms.ms.commons.config;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
+import java.io.File;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 
@@ -13,13 +15,18 @@ import java.net.UnknownHostException;
 @ConfigurationProperties(prefix = "sys.config.imageServer")
 public class ImageServerConfig {
 
+    @Resource
+    AliYunOssConfig aliYunOssConfig;
+
     private String ip;
     private String port;
+    private boolean aliyunOss;
+    private String dir;
 
     public String getIp() {
         try {
-            if(ip == null || ip.isEmpty()) {
-               ip = InetAddress.getLocalHost().getHostAddress();
+            if (ip == null || ip.isEmpty()) {
+                ip = InetAddress.getLocalHost().getHostAddress();
 
             }
         } catch (UnknownHostException e) {
@@ -28,6 +35,14 @@ public class ImageServerConfig {
         return ip;
     }
 
+    public String getDir() {
+        return dir;
+    }
+
+    public void setDir(String dir) {
+        this.dir = dir;
+    }
+
     public void setIp(String ip) {
         this.ip = ip;
     }
@@ -40,7 +55,27 @@ public class ImageServerConfig {
         this.port = port;
     }
 
-    public String getImageServer(){
-        return "http://" + this.getIp() + ":" + this.getPort();
+    public String getImageServer() {
+        if (aliyunOss) {
+            return aliYunOssConfig.getUrl() + File.separator + this.getDir();
+        } else {
+            return "http://" + this.getIp() + ":" + this.getPort();
+        }
+    }
+
+    public AliYunOssConfig getAliYunOssConfig() {
+        return aliYunOssConfig;
+    }
+
+    public void setAliYunOssConfig(AliYunOssConfig aliYunOssConfig) {
+        this.aliYunOssConfig = aliYunOssConfig;
+    }
+
+    public boolean isAliyunOss() {
+        return aliyunOss;
+    }
+
+    public void setAliyunOss(boolean aliyunOss) {
+        this.aliyunOss = aliyunOss;
     }
 }