Przeglądaj źródła

更新 dfs-store 中 FileMeta 相关接口

reghao 2 lat temu
rodzic
commit
e390077814

+ 3 - 0
dfs-store/src/main/java/cn/reghao/dfs/store/db/mapper/FileMetaMapper.java

@@ -17,7 +17,9 @@ import java.util.List;
  */
 @Mapper
 public interface FileMetaMapper extends BaseMapper<FileMeta> {
+    @Deprecated
     void updateScopeByObjectIds(@Param("scope") int scope, @Param("list") List<String> list);
+    void updateScopeByObjectNames(@Param("scope") int scope, @Param("list") List<String> list);
 
     List<FileMeta> findFileMetaByPage(Page page);
     FileMeta findBySha256sum(String sha256sum);
@@ -27,6 +29,7 @@ public interface FileMetaMapper extends BaseMapper<FileMeta> {
     List<FileMeta> findByContentId(String contentId);
     ObjectMeta findObjectMeta(String objectName);
     ObjectMeta findObjectMetaById(String objectName);
+    List<String> findObjectNames(List<String> list);
 
     /******************************************************************************************************************/
     List<FileMeta> findAll0(@Param("bucket") String bucket, @Param("max") Integer max, @Param("regex") String regex);

+ 17 - 5
dfs-store/src/main/java/cn/reghao/dfs/store/db/repository/ObjectRepository.java

@@ -40,6 +40,17 @@ public class ObjectRepository {
         dataBlockMapper.saveAll(list);
     }
 
+    //@CacheEvict(cacheNames = "oss:store:objectMeta", key = "#fileMeta.objectName")
+    @Deprecated
+    public void updateObjectScope(int scope, List<String> objectIds) {
+        fileMetaMapper.updateScopeByObjectIds(scope, objectIds);
+    }
+
+    //@CacheEvict(cacheNames = "oss:store:objectMeta", key = "#objectName")
+    public void updateObjectScope1(int scope, List<String> objectNames) {
+        fileMetaMapper.updateScopeByObjectNames(scope, objectNames);
+    }
+
     @CacheEvict(cacheNames = "oss:store:objectMeta", key = "#fileMeta.objectName")
     public void deleteObject(FileMeta fileMeta) {
         String contentId = fileMeta.getContentId();
@@ -61,19 +72,16 @@ public class ObjectRepository {
         dataBlockMapper.delete(dataBlock);
     }
 
-    public void deleteByObjectId(String objectId) {
+    private void deleteByObjectId(String objectId) {
         FileMeta fileMeta = fileMetaMapper.findByObjectId(objectId);
         deleteObject(fileMeta);
     }
 
+    //@CacheEvict
     public void deleteByObjectIds(List<String> objectIds) {
         objectIds.forEach(this::deleteByObjectId);
     }
 
-    public void updateObjectScope(int scope, List<String> objectIds) {
-        fileMetaMapper.updateScopeByObjectIds(scope, objectIds);
-    }
-
     public FileMeta getByObjectName(String objectName) {
         return fileMetaMapper.findByObjectName(objectName);
     }
@@ -100,4 +108,8 @@ public class ObjectRepository {
     public ObjectMeta getObjectMetaById(String objectId) {
         return fileMetaMapper.findObjectMetaById(objectId);
     }
+
+    public List<String> getObjectNames(List<String> objectIds) {
+        return fileMetaMapper.findObjectNames(objectIds);
+    }
 }

+ 1 - 1
dfs-store/src/main/java/cn/reghao/dfs/store/service/PutObjectService.java

@@ -108,6 +108,6 @@ public class PutObjectService {
     }
 
     public void deleteObject(String objectId) {
-        objectRepository.deleteByObjectId(objectId);
+        objectRepository.deleteByObjectIds(List.of(objectId));
     }
 }

+ 16 - 0
dfs-store/src/main/resources/mapper/FileMetaMapper.xml

@@ -35,6 +35,14 @@
             #{item}
         </foreach>
     </update>
+    <update id="updateScopeByObjectNames">
+        update file_meta
+        set scope=#{scope}
+        where object_name in
+        <foreach collection="list" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </update>
     <update id="updateBatch">
         update file_meta
         <trim prefix="set" suffixOverrides=",">
@@ -119,6 +127,14 @@
         on file_meta.content_id=data_block.content_id
         and file_meta.object_id=#{objectId}
     </select>
+    <select id="findObjectNames" resultType="java.lang.String">
+        select object_name
+        from file_meta
+        where object_id in
+        <foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </select>
 
     <!--*************************************************************************************************************-->
     <update id="updateFilename">