Ver Fonte

长文本从minio获取失败,不抛出异常,返回null

陈长荣 há 1 mês atrás
pai
commit
9705546fb5

+ 5 - 0
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/file/service/impl/FileInfoServiceImpl.java

@@ -130,6 +130,11 @@ public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> i
         String bucketName = url.substring(0, url.indexOf("/"));
         String fileName = url.substring(url.indexOf("/") + 1);
 
+        List<S3ObjectSummary> objects = fileTemplate.getAllObjectsByPrefix(bucketName, fileName, false);
+        if (objects.isEmpty()) {
+            return null;
+        }
+
         //s3Object会自动关闭,所以需要复制流
         try (S3Object s3Object = fileTemplate.getObject(bucketName, fileName);
              ByteArrayOutputStream out = new ByteArrayOutputStream()) {

+ 4 - 0
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/handler/LongTextHandler.java

@@ -94,6 +94,10 @@ public class LongTextHandler extends StringTypeHandler {
 
         FileInfoService fileService = SpringContextHolder.getBean(FileInfoService.class);
         InputStream inputStream = fileService.getStreamByUrl(textKey.substring(LONG_TEXT_FIELD_PREFIX.length() + 1));
+        if (inputStream == null) {
+            log.warn("获取长文本失败,文件不存在:{}", textKey);
+            return null;
+        }
         return IoUtil.read(inputStream, StandardCharsets.UTF_8);
     }
 }