From 9069bd5fa23989993451c60571995ecc2794fd32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E5=A4=A7?= <1504665037@qq.com> Date: Sat, 24 Jan 2026 16:13:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=87=E4=BB=B6=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E8=A1=A5=E5=85=85feign=E6=8E=A5=E5=8F=A3-=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=B5=81=E5=BC=8F=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/system/api/RemoteFileService.java | 9 ++++++ .../factory/RemoteFileFallbackFactory.java | 30 ++++++++++--------- 2 files changed, 25 insertions(+), 14 deletions(-) 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()); + } }; } }