martin 3 年之前
父節點
當前提交
5de3643fca

+ 16 - 2
simulation-resource-common/src/main/java/com/css/simulation/resource/common/controller/MinioController.java

@@ -49,8 +49,23 @@ public class MinioController {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
+//    @PostMapping("/download")
+//    public ResponseBodyVO<String> download(
+//            @RequestBody @Validated MinioParameter minioParameter,
+//            HttpServletResponse response
+//    ) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
+//        InputStream inputStream = MinioUtil.downloadToStream(
+//                minioClient,
+//                bucketName,
+//                minioParameter.getObjectName()
+//        );
+//        String fileName = FileUtil.getFileName(minioParameter.getObjectName());
+//        FileUtil.downloadForHttp(fileName, inputStream, response, 1024);
+//        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
+//    }
+
     @PostMapping("/download")
-    public ResponseBodyVO<String> download(
+    public void download(
             @RequestBody @Validated MinioParameter minioParameter,
             HttpServletResponse response
     ) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
@@ -61,7 +76,6 @@ public class MinioController {
         );
         String fileName = FileUtil.getFileName(minioParameter.getObjectName());
         FileUtil.downloadForHttp(fileName, inputStream, response, 1024);
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
     }
 
 }

+ 19 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/feign/DemoController.java

@@ -2,12 +2,19 @@ package com.css.simulation.resource.scheduler.feign;
 
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.KafkaParameter;
+import api.common.pojo.param.MinioParameter;
+import api.common.util.FileUtil;
+import feign.Response;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+
 @RestController
 @RequestMapping("/demo")
 public class DemoController {
@@ -19,7 +26,18 @@ public class DemoController {
     public ResponseBodyVO<String> upload(@RequestPart("file") MultipartFile file,
                                          @RequestParam("objectName") String objectName) {
 
-        return demoService.upload(file,objectName);
+        return demoService.upload(file, objectName);
+    }
+
+    @PostMapping("/download")
+    public void download(
+            @RequestBody @Validated MinioParameter minioParameter,
+            HttpServletResponse response
+    ) throws IOException {
+        Response download = demoService.download(minioParameter);
+        Response.Body body = download.body();
+        InputStream inputStream = body.asInputStream();
+        FileUtil.downloadForHttp(minioParameter.getObjectName(), inputStream, response, 1024);
     }
 
     @PostMapping(value = "/send", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)

+ 6 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/feign/DemoService.java

@@ -2,8 +2,10 @@ package com.css.simulation.resource.scheduler.feign;
 
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.KafkaParameter;
+import api.common.pojo.param.MinioParameter;
 import com.css.simulation.resource.scheduler.configuration.feign.OpenFeignConfiguration;
 import com.css.simulation.resource.scheduler.feign.fallback.DemoServiceFallback;
+import feign.Response;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Component;
@@ -26,6 +28,10 @@ public interface DemoService {
     ResponseBodyVO<String> upload(@RequestPart("file") MultipartFile file,
                                   @RequestParam("objectName") String objectName);
 
+    @PostMapping("/simulation/resource/common/minio/download")
+    Response download(@RequestBody @Validated MinioParameter minioParameter);
+
+
     @PostMapping(value = "/simulation/resource/common/kafka/send", consumes = MediaType.APPLICATION_JSON_VALUE)
     ResponseBodyVO<String> send(@RequestBody @Validated KafkaParameter kafkaParameter);
 

+ 13 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/feign/fallback/DemoServiceFallback.java

@@ -2,13 +2,20 @@ package com.css.simulation.resource.scheduler.feign.fallback;
 
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.KafkaParameter;
+import api.common.pojo.param.MinioParameter;
 import com.css.simulation.resource.scheduler.feign.DemoService;
+import feign.Response;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestPart;
 import org.springframework.web.multipart.MultipartFile;
 
+
 @Service
+@Slf4j
 public class DemoServiceFallback implements DemoService {
 
     @Override
@@ -17,6 +24,12 @@ public class DemoServiceFallback implements DemoService {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE);
     }
 
+    @Override
+    public Response download(@RequestBody @Validated MinioParameter minioParameter) {
+        log.error("------- 下载错误:" + minioParameter.getObjectName());
+        return null;
+    }
+
     @Override
     public ResponseBodyVO<String> send(KafkaParameter kafkaParameter) {
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE);