Преглед изворни кода

阿里云图片校验存于不同文件夹

change пре 4 година
родитељ
комит
82afbd3db8

+ 4 - 2
zhongzheng-admin/src/main/java/com/zhongzheng/controller/alioss/OssController.java

@@ -2,6 +2,7 @@ package com.zhongzheng.controller.alioss;
 
 
 import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.modules.alioss.bo.OssRequest;
 import com.zhongzheng.modules.alioss.service.OssService;
 import com.zhongzheng.modules.alioss.vo.ResultBean;
 import io.swagger.annotations.Api;
@@ -10,6 +11,7 @@ import lombok.RequiredArgsConstructor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
@@ -36,8 +38,8 @@ public class OssController {
      */
     @ApiOperation("policy获得")
     @GetMapping("/policy")
-    public AjaxResult<ResultBean> policy() {
-        ResultBean result = ossService.getPolicy();
+    public AjaxResult<ResultBean> policy(@Validated OssRequest ossRequest) {
+        ResultBean result = ossService.getPolicy(ossRequest);
         log.info("服务端生成签名:{}",result);
         return AjaxResult.success(result);
     }

+ 1 - 1
zhongzheng-admin/src/main/resources/application-dev.yml

@@ -86,6 +86,6 @@ aliyun:
         policy:
             expire: 30 # 签名有效期(S)
         maxSize: 10 # 上传文件大小(M)
-        callback:  http://mcskpf.natappfree.cc/aliyun/oss/callback # 文件上传成功后的回调地址
+        callback:  http://9aas5n.natappfree.cc/aliyun/oss/callback # 文件上传成功后的回调地址
         dir:
             prefix: oss/images/ # 上传文件夹路径前缀 `

+ 1 - 1
zhongzheng-admin/src/main/resources/application-prod.yml

@@ -86,6 +86,6 @@ aliyun:
         policy:
             expire: 30 # 签名有效期(S)
         maxSize: 10 # 上传文件大小(M)
-        callback:  http://mcskpf.natappfree.cc/aliyun/oss/callback # 文件上传成功后的回调地址
+        callback:   http://9aas5n.natappfree.cc/aliyun/oss/callback # 文件上传成功后的回调地址
         dir:
             prefix: oss/images/ # 上传文件夹路径前缀 `

+ 19 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/alioss/bo/OssRequest.java

@@ -0,0 +1,19 @@
+package com.zhongzheng.modules.alioss.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author change
+ * @date 2021年06月10日 9:07
+ */
+@Data
+public class OssRequest {
+
+    /** 上传图片标识 */
+    @ApiModelProperty("上传图片标识 0头像 1身份证 2题库 3指南指引图片 4广告图片 5身份证或学信网图片 6文件excel,word,zip等")
+    @NotNull(message = "上传图片标识不能为空")
+    private Integer ImageStatus;
+}

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/alioss/service/OssService.java

@@ -2,13 +2,14 @@ package com.zhongzheng.modules.alioss.service;
 
 
 
+import com.zhongzheng.modules.alioss.bo.OssRequest;
 import com.zhongzheng.modules.alioss.vo.ResultBean;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
 public interface OssService {
-    ResultBean getPolicy();
+    ResultBean getPolicy(OssRequest ossRequest);
 
     ResultBean callback(HttpServletRequest request);
 }

+ 29 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/alioss/service/impl/OssServiceImpl.java

@@ -11,6 +11,7 @@ import com.zhongzheng.common.constant.Constants;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.modules.alioss.bo.OssCallbackParam;
+import com.zhongzheng.modules.alioss.bo.OssRequest;
 import com.zhongzheng.modules.alioss.service.OssService;
 import com.zhongzheng.modules.alioss.vo.ResultBean;
 import org.slf4j.Logger;
@@ -46,11 +47,11 @@ public class OssServiceImpl implements OssService {
     private OSSClient ossClient;
 
     @Override
-    public ResultBean getPolicy() {
+    public ResultBean getPolicy(OssRequest ossRequest) {
         JSONObject resultBean = new JSONObject();
         // 存储目录
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
-        String dir = ALIYUN_OSS_DIR_PREFIX+sdf.format(new Date())+"/"+ this.generateRandomFilename();
+
+        String dir = ALIYUN_OSS_DIR_PREFIX+ this.generateRandomFilename(ossRequest);
         // 签名有效期
         long expireEndTime = System.currentTimeMillis() + ALIYUN_OSS_EXPIRE * 1000;
         Date expiration = new Date(expireEndTime);
@@ -84,12 +85,12 @@ public class OssServiceImpl implements OssService {
     }
 
 
-    public String generateRandomFilename() {
+    public String generateRandomFilename(OssRequest ossRequest) {
         String RandomFilename = "";
         //生成随机数
         Random rand = new Random();
         int random = rand.nextInt();
-
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
         Calendar calCurrent = Calendar.getInstance();
         int intDay = calCurrent.get(Calendar.DATE);
         int intMonth = calCurrent.get(Calendar.MONTH) + 1;
@@ -98,6 +99,29 @@ public class OssServiceImpl implements OssService {
                 String.valueOf(intDay) + "_";
 
         RandomFilename = now + String.valueOf(random > 0 ? random : (-1) * random);
+        switch(ossRequest.getImageStatus()){
+            case 0 :
+                RandomFilename = "avatar"+"/"+sdf.format(new Date())+"/"+RandomFilename;
+                break;
+            case 1 :
+                RandomFilename = "IDNumber"+"/"+sdf.format(new Date())+"/"+RandomFilename;
+                break;
+            case 2 :
+                RandomFilename = "QuestionBank"+"/"+sdf.format(new Date())+"/"+RandomFilename;
+                break;
+            case 3 :
+                RandomFilename = "guide"+"/"+sdf.format(new Date())+"/"+RandomFilename;
+                break;
+            case 4 :
+                RandomFilename = "advertising"+"/"+sdf.format(new Date())+"/"+RandomFilename;
+                break;
+            case 5 :
+                RandomFilename = "IDCard"+"/"+sdf.format(new Date())+"/"+RandomFilename;
+                break;
+            case 6 :
+                RandomFilename = "file"+"/"+sdf.format(new Date())+"/"+RandomFilename;
+                break;
+        }
 
         return RandomFilename;