Jelajahi Sumber

ObjectACL 修改为 ObjectScope, 用来统一表示资源可被看见的范围

reghao 2 tahun lalu
induk
melakukan
e8387d5bbf

+ 4 - 4
dfs-store/src/main/java/cn/reghao/dfs/store/inerceptor/AccessLogInterceptor.java

@@ -3,7 +3,7 @@ package cn.reghao.dfs.store.inerceptor;
 import cn.reghao.dfs.store.db.repository.ObjectRepository;
 import cn.reghao.dfs.store.model.po.FileMeta;
 import cn.reghao.dfs.store.util.UserContext;
-import cn.reghao.oss.api.constant.ObjectACL;
+import cn.reghao.oss.api.constant.ObjectScope;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.lang.Nullable;
 import org.springframework.stereotype.Component;
@@ -58,12 +58,12 @@ public class AccessLogInterceptor implements HandlerInterceptor {
             }
 
             int acl = fileMeta.getAcl();
-            if (acl == ObjectACL.PRIVATE.getCode()) {
+            if (acl == ObjectScope.PRIVATE.getCode()) {
                 response.setStatus(HttpServletResponse.SC_FORBIDDEN);
                 return false;
-            } else if (acl == ObjectACL.PUBLIC.getCode()) {
+            } else if (acl == ObjectScope.PUBLIC.getCode()) {
                 return true;
-            } else if (acl == ObjectACL.FRIEND.getCode()) {
+            } else if (acl == ObjectScope.FRIEND.getCode()) {
                 return false;
             }
         } else if (method.equals("PUT") || method.equals("POST")) {

+ 2 - 2
dfs-store/src/main/java/cn/reghao/dfs/store/rpc/PermissionServiceImpl.java

@@ -7,7 +7,7 @@ import cn.reghao.dfs.store.db.mapper.VideoUrlMapper;
 import cn.reghao.dfs.store.model.po.AudioFile;
 import cn.reghao.dfs.store.model.po.ImageFile;
 import cn.reghao.dfs.store.model.po.VideoUrl;
-import cn.reghao.oss.api.constant.ObjectACL;
+import cn.reghao.oss.api.constant.ObjectScope;
 import cn.reghao.oss.api.iface.PermissionService;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.stereotype.Service;
@@ -40,7 +40,7 @@ public class PermissionServiceImpl implements PermissionService {
 
     @Override
     public void getDirPermission(String prefix) {
-        for (ObjectACL acl : ObjectACL.values()) {
+        for (ObjectScope acl : ObjectScope.values()) {
         }
     }
 

+ 2 - 2
dfs-store/src/main/java/cn/reghao/dfs/store/rpc/disk/FileServiceImpl.java

@@ -1,6 +1,6 @@
 package cn.reghao.dfs.store.rpc.disk;
 
-import cn.reghao.oss.api.constant.ObjectACL;
+import cn.reghao.oss.api.constant.ObjectScope;
 import cn.reghao.oss.api.dto.DirProp;
 import cn.reghao.oss.api.dto.FileProp;
 import cn.reghao.oss.api.iface.disk.FileService;
@@ -48,7 +48,7 @@ public class FileServiceImpl implements FileService {
         String filename1 = checkFilename(pid, filename);
         String fileId = UUID.randomUUID().toString().replace("-", "");
         String objectName = String.format("disk/0/1/%s/", fileId);
-        FileMeta fileMeta = new FileMeta(objectName, fileId, filename1, pid, ObjectACL.PRIVATE.getCode());
+        FileMeta fileMeta = new FileMeta(objectName, fileId, filename1, pid, ObjectScope.PRIVATE.getCode());
         fileMetaMapper.save(fileMeta);
     }
 

+ 3 - 3
dfs-store/src/main/java/cn/reghao/dfs/store/service/ObjectNameService.java

@@ -4,7 +4,7 @@ import cn.reghao.dfs.store.config.OssProperties;
 import cn.reghao.dfs.store.db.repository.ObjectRepository;
 import cn.reghao.dfs.store.model.po.FileMeta;
 import cn.reghao.dfs.store.model.vo.ObjectProp;
-import cn.reghao.oss.api.constant.ObjectACL;
+import cn.reghao.oss.api.constant.ObjectScope;
 import cn.reghao.oss.api.constant.UploadChannel;
 import org.springframework.stereotype.Service;
 
@@ -46,10 +46,10 @@ public class ObjectNameService {
         int acl;
         if (channelId == UploadChannel.disk.getCode()) {
             diskFile = true;
-            acl = ObjectACL.PRIVATE.getCode();
+            acl = ObjectScope.PRIVATE.getCode();
         } else {
             diskFile = false;
-            acl = ObjectACL.PUBLIC.getCode();
+            acl = ObjectScope.PUBLIC.getCode();
         }
 
         FileMeta fileMeta = objectRepository.getByObjectName(objectPrefix);

+ 2 - 2
dfs-store/src/test/java/FileMetaTest.java

@@ -6,7 +6,7 @@ import cn.reghao.dfs.store.util.UserContext;
 import cn.reghao.jutil.jdk.db.Page;
 import cn.reghao.jutil.jdk.security.DigestUtil;
 import cn.reghao.jutil.jdk.thread.ThreadPoolWrapper;
-import cn.reghao.oss.api.constant.ObjectACL;
+import cn.reghao.oss.api.constant.ObjectScope;
 import cn.reghao.oss.api.constant.UploadChannel;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
@@ -164,7 +164,7 @@ public class FileMetaTest {
         UserContext userContext = new UserContext(10001L);
         for (UploadChannel channel : UploadChannel.values()) {
             String objectName = channel.getPrefix();
-            objectNameService.createParentDirs(objectName, ObjectACL.PUBLIC.getCode());
+            objectNameService.createParentDirs(objectName, ObjectScope.PUBLIC.getCode());
         }
     }
 

+ 0 - 22
oss-api/src/main/java/cn/reghao/oss/api/constant/ObjectACL.java

@@ -1,22 +0,0 @@
-package cn.reghao.oss.api.constant;
-
-/**
- * @author reghao
- * @date 2023-05-19 18:15:45
- */
-public enum ObjectACL {
-    PUBLIC(1),
-    FRIEND(2),
-    PROTECT(3),
-    PRIVATE(4);
-
-    private final int code;
-
-    ObjectACL(int code) {
-        this.code = code;
-    }
-
-    public int getCode() {
-        return code;
-    }
-}

+ 49 - 0
oss-api/src/main/java/cn/reghao/oss/api/constant/ObjectScope.java

@@ -0,0 +1,49 @@
+package cn.reghao.oss.api.constant;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 描述资源可被看见的范围
+ *
+ * @author reghao
+ * @date 2023-05-19 18:15:45
+ */
+public enum ObjectScope {
+    PUBLIC(1, "全部可见"),
+    PROTECT(2, "验证码可见"),
+    FRIEND(3, "朋友可见"),
+    PRIVATE(4, "本人可见");
+
+    private final int code;
+    private final String desc;
+
+    private static Map<Integer, String> descMap = new HashMap<>();
+    static {
+        for (ObjectScope scope : ObjectScope.values()) {
+            descMap.put(scope.code, scope.desc);
+        }
+    }
+
+    ObjectScope(Integer code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    public String getName() {
+        return this.name();
+    }
+
+    public int getValue() {
+        return this.code;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    // TODO 第一次调用时会初始化 descMap
+    public static String getDescByCode(int code) {
+        return descMap.get(code);
+    }
+}