feat:文件服务补充feign接口-增加流式调用

This commit is contained in:
高大 2026-01-24 16:13:03 +08:00
parent 25075805f2
commit 9069bd5fa2
2 changed files with 25 additions and 14 deletions

View File

@ -12,6 +12,8 @@ import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.SysFile; import com.ruoyi.system.api.domain.SysFile;
import com.ruoyi.system.api.factory.RemoteFileFallbackFactory; 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) @DeleteMapping(value = "/delete", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public R<Boolean> delete(@RequestParam("fileUrl") String fileUrl); public R<Boolean> delete(@RequestParam("fileUrl") String fileUrl);
/**
* 文件流上传请求
*/
@PostMapping("uploadStream")
public R<String> uploadFileByStream(String filename, String extension, ByteArrayOutputStream out);
} }

View File

@ -1,41 +1,43 @@
package com.ruoyi.system.api.factory; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.RemoteFileService; import java.io.ByteArrayOutputStream;
import com.ruoyi.system.api.domain.SysFile;
/** /**
* 文件服务降级处理 * 文件服务降级处理
* *
* @author ruoyi * @author ruoyi
*/ */
@Component @Component
public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileService> public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileService> {
{
private static final Logger log = LoggerFactory.getLogger(RemoteFileFallbackFactory.class); private static final Logger log = LoggerFactory.getLogger(RemoteFileFallbackFactory.class);
@Override @Override
public RemoteFileService create(Throwable throwable) public RemoteFileService create(Throwable throwable) {
{
log.error("文件服务调用失败:{}", throwable.getMessage()); log.error("文件服务调用失败:{}", throwable.getMessage());
return new RemoteFileService() return new RemoteFileService() {
{
@Override @Override
public R<SysFile> upload(MultipartFile file) public R<SysFile> upload(MultipartFile file) {
{
return R.fail("上传文件失败:" + throwable.getMessage()); return R.fail("上传文件失败:" + throwable.getMessage());
} }
@Override @Override
public R<Boolean> delete(String fileUrl) public R<Boolean> delete(String fileUrl) {
{
return R.fail("删除文件失败:" + throwable.getMessage()); return R.fail("删除文件失败:" + throwable.getMessage());
} }
@Override
public R<String> uploadFileByStream(String filename, String extension, ByteArrayOutputStream out) {
return R.fail("上传流文件失败:" + throwable.getMessage());
}
}; };
} }
} }