Bläddra i källkod

Merge branch 'feature/0908-oss' into online-0926

Eric 1 år sedan
förälder
incheckning
2a44f57740

+ 15 - 9
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/UploadFileController.java

@@ -1,10 +1,17 @@
 package com.yonge.cooleshow.admin.controller;
 
-import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
+import com.yonge.cooleshow.biz.dal.service.UploadFileService;
+import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.entity.UploadReturnBean;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
-import io.swagger.annotations.*;
-
+import com.yonge.toolset.utils.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;
@@ -15,11 +22,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.yonge.cooleshow.biz.dal.service.UploadFileService;
-import com.yonge.cooleshow.common.controller.BaseController;
-import com.yonge.cooleshow.common.entity.UploadReturnBean;
-import com.yonge.toolset.utils.upload.UploadUtil;
-
 /**
  * 上传控制层
  */
@@ -55,6 +57,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" +
@@ -66,7 +69,10 @@ 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));
     }
 }

+ 6 - 0
cooleshow-user/user-biz/pom.xml

@@ -104,6 +104,12 @@
             <artifactId>toolset-payment</artifactId>
             <version>${project.toolset.version}</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.microsvc.toolkit.middleware</groupId>
+            <artifactId>microsvc-middleware-oss</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 23 - 15
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UploadFileService.java

@@ -1,14 +1,14 @@
 package com.yonge.cooleshow.biz.dal.service;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-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.yonge.cooleshow.common.entity.UploadReturnBean;
+import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
+import com.yonge.toolset.thirdparty.storage.StoragePluginContext;
+import com.yonge.toolset.thirdparty.storage.provider.KS3StoragePlugin;
+import com.yonge.toolset.utils.upload.UploadUtil;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -17,11 +17,12 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
-import com.yonge.cooleshow.common.entity.UploadReturnBean;
-import com.yonge.toolset.base.exception.BizException;
-import com.yonge.toolset.thirdparty.storage.StoragePluginContext;
-import com.yonge.toolset.thirdparty.storage.provider.KS3StoragePlugin;
-import com.yonge.toolset.utils.upload.UploadUtil;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 
 /**
  * 上传工具服务层实现类
@@ -31,6 +32,8 @@ public class UploadFileService {
 
     @Autowired
     private StoragePluginContext storagePluginContext;
+    @Autowired
+    private OssPluginContext ossPluginContext;
 
     /**
      * 最大上传大小,单位kb
@@ -149,7 +152,12 @@ 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);
     }
 }

+ 15 - 9
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/UploadFileController.java

@@ -1,10 +1,17 @@
 package com.yonge.cooleshow.student.controller;
 
-import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
+import com.yonge.cooleshow.biz.dal.service.UploadFileService;
+import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.entity.UploadReturnBean;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
-import io.swagger.annotations.*;
-
+import com.yonge.toolset.utils.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;
@@ -15,11 +22,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.yonge.cooleshow.biz.dal.service.UploadFileService;
-import com.yonge.cooleshow.common.controller.BaseController;
-import com.yonge.cooleshow.common.entity.UploadReturnBean;
-import com.yonge.toolset.utils.upload.UploadUtil;
-
 /**
  * 上传控制层
  */
@@ -55,6 +57,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" +
@@ -66,7 +69,10 @@ 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));
     }
 }

+ 6 - 2
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/open/OpenClient.java

@@ -1,6 +1,6 @@
 package com.yonge.cooleshow.student.controller.open;
 
-import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.MusicImgDto;
@@ -134,6 +134,7 @@ public class OpenClient 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" +
@@ -145,7 +146,10 @@ public class OpenClient 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));
     }
 

+ 15 - 9
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/UploadFileController.java

@@ -1,10 +1,17 @@
 package com.yonge.cooleshow.teacher.controller;
 
-import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
+import com.yonge.cooleshow.biz.dal.service.UploadFileService;
+import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.common.entity.UploadReturnBean;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
-import io.swagger.annotations.*;
-
+import com.yonge.toolset.utils.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;
@@ -15,11 +22,6 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.yonge.cooleshow.biz.dal.service.UploadFileService;
-import com.yonge.cooleshow.common.controller.BaseController;
-import com.yonge.cooleshow.common.entity.UploadReturnBean;
-import com.yonge.toolset.utils.upload.UploadUtil;
-
 /**
  * 上传控制层
  */
@@ -55,6 +57,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" +
@@ -66,7 +69,10 @@ 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));
     }
 }

+ 53 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/open/OpenClient.java

@@ -0,0 +1,53 @@
+package com.yonge.cooleshow.teacher.controller.open;
+
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
+import com.yonge.cooleshow.biz.dal.service.UploadFileService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.thirdparty.entity.UploadSign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RestController
+@RequestMapping("/open")
+@Api(value = "开放权限接口", tags = "开放权限接口")
+public class OpenClient extends BaseController {
+
+    @Autowired
+    private UploadFileService uploadFileService;
+
+
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "bucketName", dataType = "String", value = "为空时默认使用daya"),
+            @ApiImplicitParam(name = "fileName", dataType = "String", value = "要上传的文件名称,不包含路径信息"),
+            @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" +
+            "    \"filename\":\"test.png\",\n" +
+            "    \"postData\":{\n" +
+            "        \"acl\":\"public-read\",\n" +
+            "        \"key\":\"20150115/中文/${filename}\"\n" +
+            "    },\n" +
+            "    \"unknowValueField\":[\"test\"]\n" +
+            "}")
+    @PostMapping("/getUploadSign")
+    public HttpResponseResult<OssWrapper.ResponseSign> getUploadSign(@RequestParam(defaultValue = "ks3") String pluginName,
+                                                                     @RequestBody UploadSign uploadSign) {
+        // 设置默认文件存储服务方
+        uploadSign.setPluginName(pluginName);
+        return succeed(uploadFileService.getUploadSign(uploadSign));
+    }
+}

+ 11 - 3
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/UploadFileController.java

@@ -1,13 +1,17 @@
 package com.yonge.cooleshow.website.controller;
 
-import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
 import com.yonge.cooleshow.biz.dal.service.UploadFileService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.entity.UploadReturnBean;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
 import com.yonge.toolset.utils.upload.UploadUtil;
-import io.swagger.annotations.*;
+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;
@@ -53,6 +57,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" +
@@ -64,7 +69,10 @@ 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));
     }
 }

+ 14 - 15
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenClient.java

@@ -1,25 +1,20 @@
 package com.yonge.cooleshow.website.controller.open;
 
-import com.ksyun.ks3.dto.PostObjectFormFields;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.dto.MusicImgDto;
-import com.yonge.cooleshow.biz.dal.service.*;
-import com.yonge.cooleshow.biz.dal.vo.MusicActivityVo;
-import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
+import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
+import com.yonge.cooleshow.biz.dal.service.UploadFileService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
-import com.yonge.toolset.utils.string.ValueUtil;
-import io.swagger.annotations.*;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import java.util.Map;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 
 @RestController
@@ -37,6 +32,7 @@ public class OpenClient 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" +
@@ -48,7 +44,10 @@ public class OpenClient 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));
     }
 }

+ 69 - 0
scripts/install.sh

@@ -0,0 +1,69 @@
+#!/bin/sh
+# 克隆项目源码,编译打包,部署到服务器
+
+CURRENT_DIR=`pwd`
+PROJECT_NAME="cooleshow"
+PROJECT_LIBS="libs"
+
+GIT_URL="http://10.206.0.11/yonge/cooleshow.git"
+GIT_BRANCH="master"
+
+# 删除旧的项目
+rm -rf ${PROJECT_NAME}
+echo "delete ${PROJECT_NAME} done"
+
+# 克隆项目
+git clone ${GIT_URL} -b ${GIT_BRANCH}
+echo "git clone done"
+
+cp build.sh ${PROJECT_NAME}
+# 进入项目目录编译打包
+cd ${PROJECT_NAME} && ./build.sh
+
+if [ $? -eq 0 ];then
+    echo 'mvn compile ok!';
+else
+    echo 'mvn compile failed!';
+    exit 1;
+fi
+
+# 复制项目jar包到服务器
+rm -rf ${CURRENT_DIR}/${PROJECT_LIBS} && mkdir -p ${CURRENT_DIR}/${PROJECT_LIBS}
+echo "create jar dir done"
+
+cp service.md \
+		cooleshow-user/user-admin/target/user-admin.jar \
+    audio-analysis/target/audio-analysis.jar \
+    cooleshow-auth/auth-server/target/auth-server.jar \
+    cooleshow-bbs/target/cooleshow-bbs.jar \
+    cooleshow-user/user-classroom/target/user-classroom.jar \
+    cooleshow-cms/target/cooleshow-cms.jar \
+    cooleshow-gateway/gateway-web/target/gateway-web.jar \
+    cooleshow-mall/mall-admin/target/mall-admin.jar \
+    cooleshow-mall/mall-portal/target/mall-portal.jar \
+    cooleshow-user/user-student/target/user-student.jar \
+    cooleshow-task/target/cooleshow-task.jar \
+    cooleshow-user/user-teacher/target/user-teacher.jar \
+    cooleshow-user/user-website/target/user-website.jar \
+    cooleshow-user/user-tenant/target/user-tenant.jar \
+    cooleshow-websocket/target/cooleshow-websocket.jar \
+  ${CURRENT_DIR}/${PROJECT_LIBS}/
+
+echo "copy jar done"
+
+# 服务启动
+if [ -f ${CURRENT_DIR}/jenkins-server.sh ];then
+    echo "./jenkins-server.sh server"
+
+    cd ${CURRENT_DIR} && ./jenkins-server.sh server
+else
+    echo "jenkins-server.sh not exist"
+    exit 1;
+fi
+
+
+
+
+
+
+

+ 236 - 0
scripts/jenkins-server.sh

@@ -0,0 +1,236 @@
+#!/bin/bash
+# jenkins远程执行脚本重启微服务
+
+BASEDIR="/mdata/cooleshow-test/jenkins"
+CURRENT_DIR=`pwd`
+
+# 停止服务
+function shutdown() {
+
+    SERVER_ID=$(netstat -antp | grep :$2 | grep LISTEN | awk '{print $7}' | awk -F/ '{ print $1 }')
+    if [ -n "$SERVER_ID" ]; then
+        kill -9 $SERVER_ID
+
+        echo "starting kill -9 $2...($1)"
+    fi
+}
+
+function mkdirs() {
+
+    LOG_PATH=$1
+    if [ ! -x "$LOG_PATH" ]; then
+        mkdir -p $LOG_PATH
+    fi
+}
+
+function test() {
+    echo "test $*"
+}
+
+function gateway-server() {
+    
+    shutdown $1 8000
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/gateway-web.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+function auth-server() {
+
+    shutdown $1 8001
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+            ${CURRENT_DIR}/libs/auth-server.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+function admin-server() {
+
+    shutdown $1 8005
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/user-admin.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"        
+}
+
+function teacher-server() {
+    
+    shutdown $1 9002
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/user-teacher.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+function student-server() {
+    
+    shutdown $1 9001
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/user-student.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+function website-server() {
+    
+    shutdown $1 8020
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/user-website.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+function websocket-server() {
+    
+    shutdown $1 9010
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/cooleshow-websocket.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+function audio-analysis() {
+    
+    shutdown $1 9004
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/audio-analysis.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+function bbs-server() {
+
+    shutdown $1 8012
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/cooleshow-bbs.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy bbs-server"    
+}
+
+
+function task-server() {
+
+    shutdown $1 8009
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/cooleshow-task.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy task-server"    
+}
+
+
+
+function classroom-server() {
+    
+    shutdown $1 9999
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/user-classroom.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+function cms-server() {
+    
+    shutdown $1 8006
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/cooleshow-cms.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+
+function tenant-server() {
+
+    shutdown $1 8021
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/user-tenant.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"   
+}
+
+
+function mall-admin() {
+    
+    shutdown $1 8010
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/mall-admin.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+function mall-server() {
+    
+    shutdown $1 8011
+
+    nohup java -jar -Dspring.profiles.active=dev \
+        -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256m \
+        ${CURRENT_DIR}/libs/mall-portal.jar > ${BASEDIR}/logs/$1/stdout.log 2>&1 &
+    echo "completed deploy $1"    
+}
+
+if [ $# -le 0 ]; then
+    # 解压文件
+    tar -zxf *.tar.gz
+    echo "tar -xvf *.tar.gz"
+
+    SERVICE_NAME=${CURRENT_DIR}/libs/service.md
+    # 服务名称匹配,重启服务
+    while read LINE; do
+
+        if [[ ${LINE:3:1} != 'x' ]]; then
+            # 不需要重启服务,直接忽略跳过
+            continue
+        fi
+
+        SERVICE=${LINE:6}
+        #日志目录
+        LOG_PATH=${BASEDIR}/logs/${SERVICE}
+        mkdirs $LOG_PATH
+
+        # 调用函数
+        $SERVICE $SERVICE
+        
+        echo "--------------${SERVICE}-----------------"
+    done < ${SERVICE_NAME}
+else 
+    SERVICE_NAME="exit \
+        gateway-server auth-server admin-server \
+        teacher-server student-server website-server websocket-server \
+        audio-analysis bbs-server classroom-server cms-server \
+        mall-admin mall-server task-server tenant-server"
+
+    select SERVICE in ${SERVICE_NAME}; do
+
+        # 退出
+        if [[ $SERVICE == 'exit' ]]; then
+            break
+        fi
+
+        #日志目录
+        LOG_PATH=${BASEDIR}/logs/${SERVICE}
+        mkdirs $LOG_PATH
+
+        #调用函数
+        $SERVICE $SERVICE
+
+        echo "--------------${SERVICE}-----------------"
+    done
+
+fi
+
+
+

+ 50 - 0
scripts/sync.sh

@@ -0,0 +1,50 @@
+#!/bin/sh
+# 克隆项目源码,编译打包,部署到服务器
+
+CURRENT_DIR=`pwd`
+PROJECT_NAME="cooleshow"
+PROJECT_LIBS="libs"
+
+# 进入项目目录
+cd ${PROJECT_NAME}
+
+# 复制项目jar包到服务器
+rm -rf ${CURRENT_DIR}/${PROJECT_LIBS} && mkdir -p ${CURRENT_DIR}/${PROJECT_LIBS}
+echo "create jar dir done"
+
+cp service.md \
+		cooleshow-user/user-admin/target/user-admin.jar \
+    audio-analysis/target/audio-analysis.jar \
+    cooleshow-auth/auth-server/target/auth-server.jar \
+    cooleshow-bbs/target/cooleshow-bbs.jar \
+    cooleshow-user/user-classroom/target/user-classroom.jar \
+    cooleshow-cms/target/cooleshow-cms.jar \
+    cooleshow-gateway/gateway-web/target/gateway-web.jar \
+    cooleshow-mall/mall-admin/target/mall-admin.jar \
+    cooleshow-mall/mall-portal/target/mall-portal.jar \
+    cooleshow-user/user-student/target/user-student.jar \
+    cooleshow-task/target/cooleshow-task.jar \
+    cooleshow-user/user-teacher/target/user-teacher.jar \
+    cooleshow-user/user-website/target/user-website.jar \
+    cooleshow-user/user-tenant/target/user-tenant.jar \
+    cooleshow-websocket/target/cooleshow-websocket.jar \
+  ${CURRENT_DIR}/${PROJECT_LIBS}/
+
+echo "copy jar done"
+
+# 服务启动
+if [ -f ${CURRENT_DIR}/jenkins-server.sh ];then
+    echo "./jenkins-server.sh server"
+
+    cd ${CURRENT_DIR} && ./jenkins-server.sh server
+else
+    echo "jenkins-server.sh not exist"
+    exit 1;
+fi
+
+
+
+
+
+
+

+ 12 - 0
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/entity/UploadSign.java

@@ -3,12 +3,14 @@ package com.yonge.toolset.thirdparty.entity;
 import java.io.Serializable;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 /**
  * @Author: cy
  * @Date: 2022/4/27
  */
 public class UploadSign implements Serializable {
+
     private String bucketName;
 
     private String filename;
@@ -17,6 +19,8 @@ public class UploadSign implements Serializable {
 
     private List<String> unknowValueField;
 
+    private String pluginName;
+
     public String getBucketName() {
         return bucketName;
     }
@@ -48,5 +52,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;
+    }
 }