Переглянути джерело

fix存储服务切换腾讯COS

Eric 1 рік тому
батько
коміт
4c6bfa8c71

+ 5 - 0
mec-biz/pom.xml

@@ -83,6 +83,11 @@
             <artifactId>microsvc-middleware-im</artifactId>
             <version>1.0.0</version>
         </dependency>
+		<dependency>
+			<groupId>com.microsvc.toolkit.middleware</groupId>
+			<artifactId>microsvc-middleware-oss</artifactId>
+			<version>1.0.0</version>
+		</dependency>
 
 	</dependencies>
 </project>

+ 14 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/UploadFileService.java

@@ -1,6 +1,8 @@
 package com.ym.mec.biz.service;
 
-import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.alibaba.fastjson.JSON;
+import com.microsvc.toolkit.middleware.oss.OssPluginContext;
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
 import com.ym.mec.thirdparty.entity.UploadSign;
 import com.ym.mec.common.entity.UploadReturnBean;
 import com.ym.mec.common.exception.BizException;
@@ -26,6 +28,9 @@ public class UploadFileService {
 	@Autowired
 	private StoragePluginContext storagePluginContext;
 
+	@Autowired
+	private OssPluginContext ossPluginContext;
+
 	/** 最大上传大小,单位kb */
 	@Value("${common.upload.maxSize:153600}")
 	private int maxSize;
@@ -106,8 +111,8 @@ public class UploadFileService {
 
 	/**
 	 * 上传文件的工具方法
-	 * @param in
-	 * @param path
+	 * @param inputStream InputStream
+	 * @param filePath String
 	 * @return
 	 */
 	private File uploadFile(InputStream inputStream, String filePath, String fileName) {
@@ -135,7 +140,11 @@ public class UploadFileService {
 	 * @param uploadSign
 	 * @return
 	 */
-	public PostObjectFormFields getUploadSign(UploadSign uploadSign) {
-		return storagePluginContext.getUploadSign(KS3StoragePlugin.PLUGIN_NAME, uploadSign);
+	public OssWrapper.ResponseSign getUploadSign(UploadSign uploadSign) {
+		//return storagePluginContext.getUploadSign(KS3StoragePlugin.PLUGIN_NAME, uploadSign);
+		// 请求授权签名
+		OssWrapper.RequestSign requestSign = JSON.parseObject(JSON.toJSONString(uploadSign), OssWrapper.RequestSign.class);
+
+		return ossPluginContext.getPluginService(uploadSign.getPluginName()).getUploadSign(requestSign);
 	}
 }

+ 7 - 2
mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java

@@ -1,6 +1,6 @@
 package com.ym.mec.student.controller;
 
-import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
 import com.ym.mec.thirdparty.entity.UploadSign;
 import io.swagger.annotations.*;
 
@@ -123,6 +123,7 @@ public class StudentManageController extends BaseController {
             @ApiImplicitParam(name = "postData", dataType = "Map", value = "1.如果使用js sdk上传的时候设置了ACL请设置,例\"acl\":\"public-read\"值要与SDK中一致,没有则删除该项</br>" +
                     "2.提供js sdk中的key值,例\"key\":\"20150115/中文/${filename}\""),
             @ApiImplicitParam(name = "unknowValueField", dataType = "List", value = "对于用户无法确定表单值的放在unknownValueField中(比如有的上传控件会添加一些表单项,但表单项的值可能是随机的)"),
+            @ApiImplicitParam(name = "pluginName", dataType = "String", value = "插件名称,默认ks3,可选值:ks3,aliyun,tencent"),
     })
     @ApiOperation(value = "获取上传文件签名", notes = "{\n" +
             "    \"bucketName\":\"\",\n" +
@@ -134,7 +135,11 @@ public class StudentManageController extends BaseController {
             "    \"unknowValueField\":[\"test\"]\n" +
             "}")
     @PostMapping("/getUploadSign")
-    public HttpResponseResult<PostObjectFormFields> getUploadSign(@RequestBody UploadSign uploadSign) {
+    public HttpResponseResult<OssWrapper.ResponseSign> getUploadSign(@RequestParam(defaultValue = "ks3") String pluginName,
+                                                                     @RequestBody UploadSign uploadSign) {
+        // 设置默认文件存储服务方
+        uploadSign.setPluginName(pluginName);
+
         return succeed(uploadFileService.getUploadSign(uploadSign));
     }
 

+ 33 - 17
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherManageController.java

@@ -1,31 +1,42 @@
 package com.ym.mec.teacher.controller;
 
-import com.ksyun.ks3.dto.PostObjectFormFields;
-import com.ym.mec.biz.dal.entity.CooperationOrgan;
-import com.ym.mec.biz.dal.enums.SuggestionType;
-import com.ym.mec.biz.service.*;
-import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.thirdparty.entity.UploadSign;
-import io.swagger.annotations.*;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.CashAccountDetail;
+import com.ym.mec.biz.dal.entity.CooperationOrgan;
 import com.ym.mec.biz.dal.entity.SysSuggestion;
 import com.ym.mec.biz.dal.entity.SysUserBankCard;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.CooperationOrganService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.biz.service.SysSuggestionService;
+import com.ym.mec.biz.service.SysUserBankCardService;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.service.UploadFileService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.UploadReturnBean;
+import com.ym.mec.thirdparty.entity.UploadSign;
 import com.ym.mec.util.upload.UploadUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
-import java.util.Objects;
 
 @Api(tags = "教师管理")
 @RestController
@@ -75,6 +86,7 @@ public class TeacherManageController extends BaseController {
             @ApiImplicitParam(name = "postData", dataType = "Map", value = "1.如果使用js sdk上传的时候设置了ACL请设置,例\"acl\":\"public-read\"值要与SDK中一致,没有则删除该项</br>" +
                     "2.提供js sdk中的key值,例\"key\":\"20150115/中文/${filename}\""),
             @ApiImplicitParam(name = "unknowValueField", dataType = "List", value = "对于用户无法确定表单值的放在unknownValueField中(比如有的上传控件会添加一些表单项,但表单项的值可能是随机的)"),
+            @ApiImplicitParam(name = "pluginName", dataType = "String", value = "插件名称,默认ks3,可选值:ks3,aliyun,tencent"),
     })
     @ApiOperation(value = "获取上传文件签名", notes = "{\n" +
             "    \"bucketName\":\"\",\n" +
@@ -86,7 +98,11 @@ public class TeacherManageController extends BaseController {
             "    \"unknowValueField\":[\"test\"]\n" +
             "}")
     @PostMapping("/getUploadSign")
-    public HttpResponseResult<PostObjectFormFields> getUploadSign(@RequestBody UploadSign uploadSign) {
+    public HttpResponseResult<OssWrapper.ResponseSign> getUploadSign(@RequestParam(defaultValue = "ks3") String pluginName,
+                                                                     @RequestBody UploadSign uploadSign) {
+        // 设置默认文件存储服务方
+        uploadSign.setPluginName(pluginName);
+
         return succeed(uploadFileService.getUploadSign(uploadSign));
     }
 

+ 11 - 0
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/entity/UploadSign.java

@@ -3,6 +3,7 @@ package com.ym.mec.thirdparty.entity;
 import java.io.Serializable;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 /**
  * @Author: cy
@@ -17,6 +18,8 @@ public class UploadSign implements Serializable {
 
     private List<String> unknowValueField;
 
+    private String pluginName;
+
     public String getBucketName() {
         return bucketName;
     }
@@ -48,5 +51,13 @@ public class UploadSign implements Serializable {
     public void setUnknowValueField(List<String> unknowValueField) {
         this.unknowValueField = unknowValueField;
     }
+
+    public String getPluginName() {
+        return Optional.ofNullable(pluginName).orElse("ks3");
+    }
+
+    public void setPluginName(String pluginName) {
+        this.pluginName = pluginName;
+    }
 }
 

+ 7 - 2
mec-web/src/main/java/com/ym/mec/web/controller/UploadFileController.java

@@ -1,6 +1,6 @@
 package com.ym.mec.web.controller;
 
-import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
 import com.ym.mec.thirdparty.entity.UploadSign;
 import com.ym.mec.biz.service.UploadFileService;
 import com.ym.mec.common.controller.BaseController;
@@ -94,6 +94,7 @@ public class UploadFileController extends BaseController {
 			@ApiImplicitParam(name = "postData", dataType = "Map", value = "1.如果使用js sdk上传的时候设置了ACL请设置,例\"acl\":\"public-read\"值要与SDK中一致,没有则删除该项</br>" +
 					"2.提供js sdk中的key值,例\"key\":\"20150115/中文/${filename}\""),
 			@ApiImplicitParam(name = "unknowValueField", dataType = "List", value = "对于用户无法确定表单值的放在unknownValueField中(比如有的上传控件会添加一些表单项,但表单项的值可能是随机的)"),
+			@ApiImplicitParam(name = "pluginName", dataType = "String", value = "插件名称,默认ks3,可选值:ks3,aliyun,tencent"),
 	})
 	@ApiOperation(value = "获取上传文件签名", notes = "{\n" +
 			"    \"bucketName\":\"\",\n" +
@@ -105,7 +106,11 @@ public class UploadFileController extends BaseController {
 			"    \"unknowValueField\":[\"test\"]\n" +
 			"}")
 	@PostMapping("/getUploadSign")
-	public HttpResponseResult<PostObjectFormFields> getUploadSign(@RequestBody UploadSign uploadSign) {
+	public HttpResponseResult<OssWrapper.ResponseSign> getUploadSign(@RequestParam(defaultValue = "ks3") String pluginName,
+																	 @RequestBody UploadSign uploadSign) {
+		// 设置默认文件存储服务方
+		uploadSign.setPluginName(pluginName);
+
 		return succeed(uploadFileService.getUploadSign(uploadSign));
 	}
 }