reghao 7 mesi fa
parent
commit
f09d9081e2

+ 4 - 2
oss-store/src/main/java/cn/reghao/oss/store/config/BeansConfig.java → oss-store/src/main/java/cn/reghao/oss/store/config/DubboServiceConfig.java

@@ -9,13 +9,15 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 /**
+ * 对 RPC 服务进行初始化
+ *
  * @author reghao
  * @date 2024-02-28 11:11:04
  */
 @Configuration
-public class BeansConfig {
+public class DubboServiceConfig {
     @Bean
-    public ConsoleService nodeService(OssProperties ossProperties) {
+    public ConsoleService consoleService(OssProperties ossProperties) {
         RemoteService<ConsoleService> remoteService = new RemoteService<>();
         String host = ossProperties.getConsoleHost();
         int port = 14030;

+ 5 - 5
oss-store/src/main/java/cn/reghao/oss/store/config/SpringLifecycle.java

@@ -5,7 +5,7 @@ import cn.reghao.oss.api.dto.StoreNodeDto;
 import cn.reghao.oss.api.dto.disk.DiskVolume;
 import cn.reghao.oss.api.iface.StoreService;
 import cn.reghao.oss.store.config.props.SpringProperties;
-import cn.reghao.oss.store.service.ConsoleCache;
+import cn.reghao.oss.store.service.ConsoleServiceWrapper;
 import cn.reghao.oss.store.tomcat.TomcatStarter;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.DisposableBean;
@@ -25,15 +25,15 @@ import java.util.concurrent.ExecutorService;
 public class SpringLifecycle implements ApplicationRunner, DisposableBean {
     private final SpringProperties springProperties;
     private final StoreService storeService;
-    private final ConsoleCache consoleCache;
+    private final ConsoleServiceWrapper consoleServiceWrapper;
     private final ExecutorService threadPool;
     private final TomcatStarter tomcatStarter;
 
     public SpringLifecycle(SpringProperties springProperties, StoreService storeService,
-                           ConsoleCache consoleCache, TomcatStarter tomcatStarter) {
+                           ConsoleServiceWrapper consoleServiceWrapper, TomcatStarter tomcatStarter) {
         this.springProperties = springProperties;
         this.storeService = storeService;
-        this.consoleCache = consoleCache;
+        this.consoleServiceWrapper = consoleServiceWrapper;
         this.threadPool = ThreadPoolWrapper.threadPool("tomcat");
         this.tomcatStarter = tomcatStarter;
     }
@@ -51,7 +51,7 @@ public class SpringLifecycle implements ApplicationRunner, DisposableBean {
         int rpcPort = springProperties.getRpcPort();
         List<DiskVolume> diskVolumeList = storeService.getDiskVolumes();
         StoreNodeDto storeNodeDto = new StoreNodeDto(nodeAddr, httpPort, rpcPort, diskVolumeList);
-        consoleCache.registerNode(storeNodeDto);
+        consoleServiceWrapper.registerNode(storeNodeDto);
         log.info("StoreNode 已注册到 oss-console...");
     }
 

+ 6 - 6
oss-store/src/main/java/cn/reghao/oss/store/controller/ObjectGetController.java

@@ -6,7 +6,7 @@ import cn.reghao.oss.sdk.model.constant.ObjectScope;
 import cn.reghao.oss.api.dto.ObjectChannel;
 import cn.reghao.oss.api.dto.ObjectMeta;
 import cn.reghao.oss.store.db.repository.ObjectRepository;
-import cn.reghao.oss.store.service.ConsoleCache;
+import cn.reghao.oss.store.service.ConsoleServiceWrapper;
 import cn.reghao.oss.store.service.GetObjectService;
 import cn.reghao.oss.api.util.JwtUtil;
 import cn.reghao.oss.store.util.ObjectUtil;
@@ -29,14 +29,14 @@ import java.io.IOException;
 public class ObjectGetController {
     private final GetObjectService getObjectService;
     private final ObjectRepository objectRepository;
-    private final ConsoleCache consoleCache;
+    private final ConsoleServiceWrapper consoleServiceWrapper;
     private final Cache<String, String> cache;
 
     public ObjectGetController(GetObjectService getObjectService, ObjectRepository objectRepository,
-                               ConsoleCache consoleCache, Cache<String, String> cache) {
+                               ConsoleServiceWrapper consoleServiceWrapper, Cache<String, String> cache) {
         this.getObjectService = getObjectService;
         this.objectRepository = objectRepository;
-        this.consoleCache = consoleCache;
+        this.consoleServiceWrapper = consoleServiceWrapper;
         this.cache = cache;
     }
 
@@ -60,7 +60,7 @@ public class ObjectGetController {
                           @RequestParam(value = "client", required = false) String client) throws IOException {
         String objectName = ObjectUtil.getObjectName();
         String domain = ServletUtil.getHeader("host");
-        int owner = consoleCache.getNodeProperties(domain).getOwner();
+        int owner = consoleServiceWrapper.getNodeProperties(domain).getOwner();
         ObjectMeta objectMeta = objectRepository.getObjectMetaByName(objectName, owner);
         if (objectMeta == null) {
             getObjectService.writeResponse(HttpServletResponse.SC_NOT_FOUND);
@@ -107,7 +107,7 @@ public class ObjectGetController {
         OssPayload ossPayload = JwtUtil.getOssPayload(token, secretKey);
         int loginUser = ossPayload.getUserId();
         int channelCode = ossPayload.getChannelCode();
-        ObjectChannel objectChannel = consoleCache.getChannelByCode(loginUser, channelCode);
+        ObjectChannel objectChannel = consoleServiceWrapper.getChannelByCode(loginUser, channelCode);
         if (objectChannel == null) {
             String payload = String.format("channel_id %s not exist", channelCode);
             getObjectService.writeResponse(HttpServletResponse.SC_FORBIDDEN, payload);

+ 6 - 6
oss-store/src/main/java/cn/reghao/oss/store/controller/ObjectMultipartUploadController.java

@@ -8,7 +8,7 @@ import cn.reghao.oss.api.util.JwtUtil;
 import cn.reghao.oss.sdk.model.rest.UploadFilePart;
 import cn.reghao.oss.sdk.model.rest.UploadFileRet;
 import cn.reghao.oss.sdk.model.rest.UploadedPart;
-import cn.reghao.oss.store.service.ConsoleCache;
+import cn.reghao.oss.store.service.ConsoleServiceWrapper;
 import cn.reghao.oss.store.service.ObjectMultipartUploadService;
 import cn.reghao.jutil.jdk.result.WebResult;
 import com.github.benmanes.caffeine.cache.Cache;
@@ -29,13 +29,13 @@ import org.springframework.web.multipart.MultipartFile;
 @RestController
 public class ObjectMultipartUploadController {
     private final ObjectMultipartUploadService objectMultipartUploadService;
-    private final ConsoleCache consoleCache;
+    private final ConsoleServiceWrapper consoleServiceWrapper;
     private final Cache<String, String> cache;
 
     public ObjectMultipartUploadController(ObjectMultipartUploadService objectMultipartUploadService,
-                                           ConsoleCache consoleCache, Cache<String, String> cache) {
+                                           ConsoleServiceWrapper consoleServiceWrapper, Cache<String, String> cache) {
         this.objectMultipartUploadService = objectMultipartUploadService;
-        this.consoleCache = consoleCache;
+        this.consoleServiceWrapper = consoleServiceWrapper;
         this.cache = cache;
     }
 
@@ -65,7 +65,7 @@ public class ObjectMultipartUploadController {
         }
 
         int loginUser = ossPayload.getUserId();
-        ObjectChannel objectChannel = consoleCache.getChannelByCode(loginUser, channelCode);
+        ObjectChannel objectChannel = consoleServiceWrapper.getChannelByCode(loginUser, channelCode);
         if (objectChannel == null) {
             String errMsg = String.format("channel validate failed, channel %s not exist", channelCode);
             return ResponseEntity.status(HttpStatus.FORBIDDEN)
@@ -103,7 +103,7 @@ public class ObjectMultipartUploadController {
         }
 
         int loginUser = ossPayload.getUserId();
-        ObjectChannel objectChannel = consoleCache.getChannelByCode(loginUser, channelCode);
+        ObjectChannel objectChannel = consoleServiceWrapper.getChannelByCode(loginUser, channelCode);
         if (objectChannel == null) {
             String errMsg = String.format("channel validate failed, channel %s not exist", channelCode);
             return ResponseEntity.status(HttpStatus.FORBIDDEN)

+ 4 - 4
oss-store/src/main/java/cn/reghao/oss/store/controller/ObjectUploadController.java

@@ -36,17 +36,17 @@ public class ObjectUploadController {
     private final FileStoreService fileStoreService;
     private final ObjectNameService objectNameService;
     private final PutObjectService putObjectService;
-    private final ConsoleCache consoleCache;
+    private final ConsoleServiceWrapper consoleServiceWrapper;
     private final Cache<String, String> cache;
 
     public ObjectUploadController(ChannelValidateService channelValidateService, FileStoreService fileStoreService,
                                   ObjectNameService objectNameService, PutObjectService putObjectService,
-                                  ConsoleCache consoleCache, Cache<String, String> cache) {
+                                  ConsoleServiceWrapper consoleServiceWrapper, Cache<String, String> cache) {
         this.channelValidateService = channelValidateService;
         this.fileStoreService = fileStoreService;
         this.objectNameService = objectNameService;
         this.putObjectService = putObjectService;
-        this.consoleCache = consoleCache;
+        this.consoleServiceWrapper = consoleServiceWrapper;
         this.cache = cache;
     }
 
@@ -82,7 +82,7 @@ public class ObjectUploadController {
         }
 
         int loginUser = ossPayload.getUserId();
-        ObjectChannel objectChannel = consoleCache.getChannelByCode(loginUser, channelCode);
+        ObjectChannel objectChannel = consoleServiceWrapper.getChannelByCode(loginUser, channelCode);
         if (objectChannel == null) {
             String errMsg = String.format("channel validate failed, channel %s not exist", channelCode);
             return ResponseEntity.status(HttpStatus.FORBIDDEN)

+ 4 - 2
oss-store/src/main/java/cn/reghao/oss/store/service/ConsoleCache.java → oss-store/src/main/java/cn/reghao/oss/store/service/ConsoleServiceWrapper.java

@@ -9,14 +9,16 @@ import org.springframework.stereotype.Service;
 import javax.annotation.PostConstruct;
 
 /**
+ * 对 rpc 服务 ConsoleService 的一个包装, 目前只是简单调用 ConsoleService 的接口, 后期可添加缓存减少对 rpc 接口的调用
+ *
  * @author reghao
  * @date 2024-12-09 10:39:08
  */
 @Service
-public class ConsoleCache {
+public class ConsoleServiceWrapper {
     private final ConsoleService consoleService;
 
-    public ConsoleCache(ConsoleService consoleService) {
+    public ConsoleServiceWrapper(ConsoleService consoleService) {
         this.consoleService = consoleService;
     }
 

+ 5 - 5
oss-store/src/main/java/cn/reghao/oss/store/service/GetObjectService.java

@@ -25,17 +25,17 @@ public class GetObjectService {
     // 1MB
     private final int bufSize = 1024*1024;
     private final ObjectRepository objectRepository;
-    private final ConsoleCache consoleCache;
+    private final ConsoleServiceWrapper consoleServiceWrapper;
 
-    public GetObjectService(ObjectRepository objectRepository, ConsoleCache consoleCache) {
+    public GetObjectService(ObjectRepository objectRepository, ConsoleServiceWrapper consoleServiceWrapper) {
         this.objectRepository = objectRepository;
-        this.consoleCache = consoleCache;
+        this.consoleServiceWrapper = consoleServiceWrapper;
     }
     
     public void headObject(String objectName) throws IOException {
         HttpServletResponse response = ServletUtil.getResponse();
         String domain = ServletUtil.getHeader("host");
-        int owner = consoleCache.getNodeProperties(domain).getOwner();
+        int owner = consoleServiceWrapper.getNodeProperties(domain).getOwner();
         FileMeta fileMeta = objectRepository.getByObjectName(objectName, owner);
         if (fileMeta == null) {
             response.setStatus(HttpServletResponse.SC_NOT_FOUND);
@@ -83,7 +83,7 @@ public class GetObjectService {
             writeContentRange(objectMeta, contentRange);
         } else {
             String domain = host;
-            NodeProperties nodeProperties = consoleCache.getNodeProperties(host);
+            NodeProperties nodeProperties = consoleServiceWrapper.getNodeProperties(host);
             if (nodeProperties != null) {
                 domain = nodeProperties.getDomain();
             }

+ 5 - 5
oss-store/src/main/java/cn/reghao/oss/store/service/ObjectNameService.java

@@ -19,11 +19,11 @@ import java.util.UUID;
 @Service
 public class ObjectNameService {
     private final ObjectRepository objectRepository;
-    private final ConsoleCache consoleCache;
+    private final ConsoleServiceWrapper consoleServiceWrapper;
 
-    public ObjectNameService(ObjectRepository objectRepository, ConsoleCache consoleCache) {
+    public ObjectNameService(ObjectRepository objectRepository, ConsoleServiceWrapper consoleServiceWrapper) {
         this.objectRepository = objectRepository;
-        this.consoleCache = consoleCache;
+        this.consoleServiceWrapper = consoleServiceWrapper;
     }
 
     public ObjectProp getObjectProp(ObjectChannel channel, String filename) throws Exception {
@@ -32,7 +32,7 @@ public class ObjectNameService {
         String objectPrefix = channel.getPrefix();
         String objectName = objectPrefix + UUID.randomUUID().toString().replace("-", "") + suffix;
         String domain = ServletUtil.getHeader("host");
-        int owner = consoleCache.getNodeProperties(domain).getOwner();
+        int owner = consoleServiceWrapper.getNodeProperties(domain).getOwner();
         FileMeta fileMeta = objectRepository.getByObjectName(objectPrefix, owner);
         if (fileMeta == null) {
             String errMsg = String.format("objectPrefix %s 不合法", objectPrefix);
@@ -47,7 +47,7 @@ public class ObjectNameService {
         int idx = originalObjectName.lastIndexOf("/");
         String prefix = originalObjectName.substring(0, idx+1);
         String domain = ServletUtil.getHeader("host");
-        int owner = consoleCache.getNodeProperties(domain).getOwner();
+        int owner = consoleServiceWrapper.getNodeProperties(domain).getOwner();
         FileMeta fileMeta = objectRepository.getByObjectName(originalObjectName, owner);
         int scope = fileMeta.getScope();
         String pid = fileMeta.getPid();

+ 5 - 5
oss-store/src/main/java/cn/reghao/oss/store/service/PutObjectService.java

@@ -29,14 +29,14 @@ public class PutObjectService {
     private final ObjectRepository objectRepository;
     private final ObjectNameService objectNameService;
     private final String nodeAddress;
-    private final ConsoleCache consoleCache;
+    private final ConsoleServiceWrapper consoleServiceWrapper;
 
     public PutObjectService(ObjectRepository objectRepository, ObjectNameService objectNameService,
-                            OssProperties ossProperties, ConsoleCache consoleCache) {
+                            OssProperties ossProperties, ConsoleServiceWrapper consoleServiceWrapper) {
         this.objectRepository = objectRepository;
         this.objectNameService = objectNameService;
         this.nodeAddress = ossProperties.getStoreHost();
-        this.consoleCache = consoleCache;
+        this.consoleServiceWrapper = consoleServiceWrapper;
     }
 
     public ObjectResult putObject(ObjectProp objectProp, String contentId, File savedFile, String originalFilename, String sha256sum) {
@@ -74,7 +74,7 @@ public class PutObjectService {
     public ObjectResult copyObject(ObjectProp objectProp, String filename, FileMeta fileMeta) {
         String dupObjectId = fileMeta.getObjectId();
         String domain = ServletUtil.getHeader("host");
-        int owner = consoleCache.getNodeProperties(domain).getOwner();
+        int owner = consoleServiceWrapper.getNodeProperties(domain).getOwner();
         ObjectMeta objectMeta = objectRepository.getObjectMetaByName(fileMeta.getObjectName(), owner);
 
         int fileType = fileMeta.getFileType();
@@ -90,7 +90,7 @@ public class PutObjectService {
 
     public ObjectResult copyFromObjectName(String fromObjectName) {
         String domain = ServletUtil.getHeader("host");
-        int owner = consoleCache.getNodeProperties(domain).getOwner();
+        int owner = consoleServiceWrapper.getNodeProperties(domain).getOwner();
         FileMeta fileMeta = objectRepository.getByObjectName(fromObjectName, owner);
         int fileType = fileMeta.getFileType();
 

+ 4 - 4
oss-store/src/main/java/cn/reghao/oss/store/service/SignService.java

@@ -18,17 +18,17 @@ import java.util.UUID;
  */
 @Service
 public class SignService {
-    private final ConsoleCache consoleCache;
+    private final ConsoleServiceWrapper consoleServiceWrapper;
     private final Cache<String, String> cache;
 
-    public SignService(ConsoleCache consoleCache, Cache<String, String> cache) {
-        this.consoleCache = consoleCache;
+    public SignService(ConsoleServiceWrapper consoleServiceWrapper, Cache<String, String> cache) {
+        this.consoleServiceWrapper = consoleServiceWrapper;
         this.cache = cache;
     }
 
     public String getSignedUrl(int loginUser, String url, int expire) {
         long timestamp = System.currentTimeMillis() + expire*1000L;
-        int channelCode = consoleCache.getChannelCodeByUrl(loginUser, url);
+        int channelCode = consoleServiceWrapper.getChannelCodeByUrl(loginUser, url);
 
         String action1 = ChannelAction.download.getName();
         String action = ChannelAction.access.getName();