唐tag 1 рік тому
батько
коміт
585e433bf7

+ 69 - 61
src/main/java/com/zswl/dataservicestarter/service/GridFsService.java

@@ -15,79 +15,87 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
+ * mongdb GridFs 文件管理服务
+ *
  * @author TRX
  * @date 2024/3/25
  */
 @Service
 public class GridFsService {
 
-  @Autowired GridFsTemplate gridFsTemplate;
+    @Autowired
+    GridFsTemplate gridFsTemplate;
 
-  /**
-   * 存储文件数据
-   *
-   * @param content
-   * @param filename
-   * @return
-   */
-  public String addGridFs(InputStream content, String filename) {
-    ObjectId objectId = gridFsTemplate.store(content, filename);
-    return objectId.toHexString();
-  }
+    /**
+     * 存储文件数据
+     *
+     * @param content
+     * @param filename
+     * @return
+     */
+    public String addGridFs(InputStream content, String filename) {
+        ObjectId objectId = gridFsTemplate.store(content, filename);
+        return objectId.toHexString();
+    }
 
-  /**
-   * 根据ID查询文件
-   *
-   * @param id
-   * @return
-   * @throws IOException
-   */
-  public InputStream getFile(String id) throws IOException {
-    GridFSFile file = gridFsTemplate.findOne(new Query(Criteria.where("_id").is(id)));
-    if (file != null) {
-      GridFsResource resource = gridFsTemplate.getResource(file);
-      return resource.getInputStream();
+    /**
+     * 根据ID查询文件
+     *
+     * @param id
+     * @return
+     * @throws IOException
+     */
+    public InputStream getFile(String id) throws IOException {
+        GridFSFile file = gridFsTemplate.findOne(new Query(Criteria.where("_id").is(id)));
+        if (file != null) {
+            GridFsResource resource = gridFsTemplate.getResource(file);
+            return resource.getInputStream();
+        }
+        return null;
     }
-    return null;
-  }
 
-  /**
-   * 根据名称查询多个文件
-   *
-   * @param name
-   * @return
-   * @throws IOException
-   */
-  public List<InputStream> getFilesByName(String name) throws IOException {
-    List<InputStream> inputStreams = new ArrayList<>();
-    Query query = new Query(Criteria.where("filename").is(name));
-    List<GridFSFile> files = gridFsTemplate.find(query).into(new ArrayList<>());
+    /**
+     * 根据名称查询多个文件
+     *
+     * @param name
+     * @return
+     * @throws IOException
+     */
+    public List<InputStream> getFilesByName(String name) throws IOException {
+        List<InputStream> inputStreams = new ArrayList<>();
+        Query query = new Query(Criteria.where("filename").is(name));
+        List<GridFSFile> files = gridFsTemplate.find(query).into(new ArrayList<>());
 
-    for (GridFSFile file : files) {
-      GridFsResource resource = gridFsTemplate.getResource(file);
-      InputStream inputStream = resource.getInputStream();
-      if (inputStream != null) {
-        inputStreams.add(inputStream);
-      }
+        files.stream().forEach((file) -> {
+            GridFsResource resource = gridFsTemplate.getResource(file);
+            InputStream inputStream = null;
+            try {
+                inputStream = resource.getInputStream();
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+            if (inputStream != null) {
+                inputStreams.add(inputStream);
+            }
+        });
+        return inputStreams;
     }
-    return inputStreams;
-  }
 
-  /**
-   * 根据文件删除文件
-   *
-   * @param filename
-   */
-  public void deleteFileByName(String filename) {
-    gridFsTemplate.delete(new Query(Criteria.where("filename").is(filename)));
-  }
+    /**
+     * 根据文件删除文件
+     *
+     * @param filename
+     */
+    public void deleteFileByName(String filename) {
+        gridFsTemplate.delete(new Query(Criteria.where("filename").is(filename)));
+    }
 
-  /**
-   * 根据文件ID删除文件
-   *
-   * @param id
-   */
-  public void deleteFileById(String id) {
-    gridFsTemplate.delete(new Query(Criteria.where("_id").is(id)));
-  }
+    /**
+     * 根据文件ID删除文件
+     *
+     * @param id
+     */
+    public void deleteFileById(String id) {
+        gridFsTemplate.delete(new Query(Criteria.where("_id").is(id)));
+    }
 }