diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java index 56d0e08..ce946ff 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteFileService.java @@ -12,6 +12,8 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.SysFile; import com.ruoyi.system.api.factory.RemoteFileFallbackFactory; +import java.io.ByteArrayOutputStream; + /** * 文件服务 * @@ -37,4 +39,11 @@ public interface RemoteFileService */ @DeleteMapping(value = "/delete", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) public R delete(@RequestParam("fileUrl") String fileUrl); + + + /** + * 文件流上传请求 + */ + @PostMapping("uploadStream") + public R uploadFileByStream(String filename, String extension, ByteArrayOutputStream out); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java index b6c56b8..662fa58 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java @@ -1,41 +1,43 @@ package com.ruoyi.system.api.factory; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.RemoteFileService; +import com.ruoyi.system.api.domain.SysFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.system.api.RemoteFileService; -import com.ruoyi.system.api.domain.SysFile; + +import java.io.ByteArrayOutputStream; /** * 文件服务降级处理 - * + * * @author ruoyi */ @Component -public class RemoteFileFallbackFactory implements FallbackFactory -{ +public class RemoteFileFallbackFactory implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(RemoteFileFallbackFactory.class); @Override - public RemoteFileService create(Throwable throwable) - { + public RemoteFileService create(Throwable throwable) { log.error("文件服务调用失败:{}", throwable.getMessage()); - return new RemoteFileService() - { + return new RemoteFileService() { @Override - public R upload(MultipartFile file) - { + public R upload(MultipartFile file) { return R.fail("上传文件失败:" + throwable.getMessage()); } @Override - public R delete(String fileUrl) - { + public R delete(String fileUrl) { return R.fail("删除文件失败:" + throwable.getMessage()); } + + @Override + public R uploadFileByStream(String filename, String extension, ByteArrayOutputStream out) { + return R.fail("上传流文件失败:" + throwable.getMessage()); + } }; } }