From 9ef2f736c3d6730c78dbb3ce2bb973b6214fd6e5 Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Tue, 2 Sep 2025 18:09:02 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=B7=BB=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=96=87=E4=BB=B6byte[]=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/agt/module/infra/api/file/FileApi.java | 5 +++++ .../agt/module/infra/api/file/FileApiImpl.java | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/agt-module-infra/agt-module-infra-api/src/main/java/org/agt/module/infra/api/file/FileApi.java b/agt-module-infra/agt-module-infra-api/src/main/java/org/agt/module/infra/api/file/FileApi.java index be7cf89..1144c7c 100644 --- a/agt-module-infra/agt-module-infra-api/src/main/java/org/agt/module/infra/api/file/FileApi.java +++ b/agt-module-infra/agt-module-infra-api/src/main/java/org/agt/module/infra/api/file/FileApi.java @@ -8,8 +8,10 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; @FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory = @Tag(name = "RPC 服务 - 文件") @@ -56,4 +58,7 @@ public interface FileApi { @Operation(summary = "保存文件,并返回文件的访问路径") CommonResult createFile(@Valid @RequestBody FileCreateReqDTO createReqDTO); + @GetMapping(PREFIX + "/get") + @Operation(summary = "根据文件的访问路径返回文件内容") + CommonResult getFileContent(@Valid @RequestParam String url); } diff --git a/agt-module-infra/agt-module-infra-server/src/main/java/org/agt/module/infra/api/file/FileApiImpl.java b/agt-module-infra/agt-module-infra-server/src/main/java/org/agt/module/infra/api/file/FileApiImpl.java index 9728087..bd5df6d 100644 --- a/agt-module-infra/agt-module-infra-server/src/main/java/org/agt/module/infra/api/file/FileApiImpl.java +++ b/agt-module-infra/agt-module-infra-server/src/main/java/org/agt/module/infra/api/file/FileApiImpl.java @@ -1,8 +1,11 @@ package org.agt.module.infra.api.file; +import cn.hutool.core.util.StrUtil; import org.agt.framework.common.pojo.CommonResult; import org.agt.module.infra.api.file.dto.FileCreateReqDTO; import org.agt.module.infra.service.file.FileService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; @@ -14,6 +17,7 @@ import static org.agt.framework.common.pojo.CommonResult.success; @Validated public class FileApiImpl implements FileApi { + private static final Logger log = LoggerFactory.getLogger(FileApiImpl.class); @Resource private FileService fileService; @@ -23,4 +27,17 @@ public class FileApiImpl implements FileApi { createReqDTO.getDirectory(), createReqDTO.getType())); } + @Override + public CommonResult getFileContent(String url) { + byte[] content = null; + try { + String path = StrUtil.subAfter(url, "/get/", false); + String configId = StrUtil.subBetween(url, "/file/", "/get/"); + content = fileService.getFileContent(Long.valueOf(configId), path); + } catch (Exception e) { + log.error("get file content error {}", url, e); + } + return success(content); + } + }