Commit 4580bcf8e058c18beed5539e2c6642f74dc385ec
1 parent
3e3bcc96
fix:【infra 基础设施】LocalFileClient 读取不到文件(getContent)时,返回 null 而不是抛出异常 https://gith…
…ub.com/YunaiV/ruoyi-vue-pro/issues/929
Showing
2 changed files
with
25 additions
and
1 deletions
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/framework/file/core/client/local/LocalFileClient.java
| 1 | package cn.iocoder.yudao.module.infra.framework.file.core.client.local; | 1 | package cn.iocoder.yudao.module.infra.framework.file.core.client.local; |
| 2 | 2 | ||
| 3 | import cn.hutool.core.io.FileUtil; | 3 | import cn.hutool.core.io.FileUtil; |
| 4 | +import cn.hutool.core.io.IORuntimeException; | ||
| 4 | import cn.iocoder.yudao.module.infra.framework.file.core.client.AbstractFileClient; | 5 | import cn.iocoder.yudao.module.infra.framework.file.core.client.AbstractFileClient; |
| 5 | 6 | ||
| 6 | import java.io.File; | 7 | import java.io.File; |
| @@ -38,7 +39,14 @@ public class LocalFileClient extends AbstractFileClient<LocalFileClientConfig> { | @@ -38,7 +39,14 @@ public class LocalFileClient extends AbstractFileClient<LocalFileClientConfig> { | ||
| 38 | @Override | 39 | @Override |
| 39 | public byte[] getContent(String path) { | 40 | public byte[] getContent(String path) { |
| 40 | String filePath = getFilePath(path); | 41 | String filePath = getFilePath(path); |
| 41 | - return FileUtil.readBytes(filePath); | 42 | + try { |
| 43 | + return FileUtil.readBytes(filePath); | ||
| 44 | + } catch (IORuntimeException ex) { | ||
| 45 | + if (ex.getMessage().startsWith("File not exist:")) { | ||
| 46 | + return null; | ||
| 47 | + } | ||
| 48 | + throw ex; | ||
| 49 | + } | ||
| 42 | } | 50 | } |
| 43 | 51 | ||
| 44 | private String getFilePath(String path) { | 52 | private String getFilePath(String path) { |
yudao-module-infra/src/test/java/cn/iocoder/yudao/module/infra/framework/file/core/local/LocalFileClientTest.java
| @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.infra.framework.file.core.client.local.LocalFileC | @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.infra.framework.file.core.client.local.LocalFileC | ||
| 7 | import org.junit.jupiter.api.Disabled; | 7 | import org.junit.jupiter.api.Disabled; |
| 8 | import org.junit.jupiter.api.Test; | 8 | import org.junit.jupiter.api.Test; |
| 9 | 9 | ||
| 10 | +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString; | ||
| 11 | + | ||
| 10 | public class LocalFileClientTest { | 12 | public class LocalFileClientTest { |
| 11 | 13 | ||
| 12 | @Test | 14 | @Test |
| @@ -26,4 +28,18 @@ public class LocalFileClientTest { | @@ -26,4 +28,18 @@ public class LocalFileClientTest { | ||
| 26 | client.delete(path); | 28 | client.delete(path); |
| 27 | } | 29 | } |
| 28 | 30 | ||
| 31 | + @Test | ||
| 32 | + @Disabled | ||
| 33 | + public void testGetContent_notFound() { | ||
| 34 | + // 创建客户端 | ||
| 35 | + LocalFileClientConfig config = new LocalFileClientConfig(); | ||
| 36 | + config.setDomain("http://127.0.0.1:48080"); | ||
| 37 | + config.setBasePath("/Users/yunai/file_test"); | ||
| 38 | + LocalFileClient client = new LocalFileClient(0L, config); | ||
| 39 | + client.init(); | ||
| 40 | + // 上传文件 | ||
| 41 | + byte[] content = client.getContent(randomString()); | ||
| 42 | + System.out.println(); | ||
| 43 | + } | ||
| 44 | + | ||
| 29 | } | 45 | } |