This commit is contained in:
孙小云 2026-01-24 17:24:01 +08:00
commit 4cc69b2376
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.factory.RemoteFileFallbackFactory;
import java.io.ByteArrayOutputStream;
/**
* 文件服务
*
@ -37,4 +39,11 @@ public interface RemoteFileService
*/
@DeleteMapping(value = "/delete", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public R<Boolean> delete(@RequestParam("fileUrl") String fileUrl);
/**
* 文件流上传请求
*/
@PostMapping("uploadStream")
public R<String> uploadFileByData(@RequestParam("filename") String filename, @RequestParam("extension") String extension, @RequestParam("data") String data);
}

View File

@ -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<RemoteFileService>
{
public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileService> {
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<SysFile> upload(MultipartFile file)
{
public R<SysFile> upload(MultipartFile file) {
return R.fail("上传文件失败:" + throwable.getMessage());
}
@Override
public R<Boolean> delete(String fileUrl)
{
public R<Boolean> delete(String fileUrl) {
return R.fail("删除文件失败:" + throwable.getMessage());
}
@Override
public R<String> uploadFileByData(String filename, String extension, String data) {
return R.fail("上传流文件失败:" + throwable.getMessage());
}
};
}
}