reghao преди 1 година
родител
ревизия
058daba737
променени са 22 файла, в които са добавени 101 реда и са изтрити 95 реда
  1. 2 2
      oss-api/src/main/java/cn/reghao/oss/api/iface/ConsoleService.java
  2. 1 1
      oss-api/src/main/java/cn/reghao/oss/api/iface/StoreService.java
  3. 1 1
      oss-api/src/main/java/cn/reghao/oss/api/iface/StoreServiceWrapper.java
  4. 1 1
      oss-console/src/main/java/cn/reghao/oss/console/app/controller/OssController.java
  5. 3 1
      oss-console/src/main/java/cn/reghao/oss/console/app/model/dto/UserNodeDto.java
  6. 1 0
      oss-console/src/main/java/cn/reghao/oss/console/app/model/po/UserNode.java
  7. 8 18
      oss-console/src/main/java/cn/reghao/oss/console/app/rpc/ConsoleServiceImpl.java
  8. 18 8
      oss-console/src/main/java/cn/reghao/oss/console/app/rpc/StoreServiceWrapperImpl.java
  9. 11 0
      oss-console/src/main/java/cn/reghao/oss/console/app/service/UserNodeService.java
  10. 3 3
      oss-console/src/main/resources/templates/usernode/add.html
  11. 2 2
      oss-sdk/src/main/java/cn/reghao/oss/sdk/OssConsoleClient.java
  12. 6 0
      oss-store/README.md
  13. 8 1
      oss-store/src/main/java/cn/reghao/oss/store/config/inerceptor/AccessLogInterceptor.java
  14. 3 1
      oss-store/src/main/java/cn/reghao/oss/store/controller/ObjectGetController.java
  15. 2 1
      oss-store/src/main/java/cn/reghao/oss/store/controller/ObjectUploadController.java
  16. 2 3
      oss-store/src/main/java/cn/reghao/oss/store/rpc/StoreServiceImpl.java
  17. 8 1
      oss-store/src/main/java/cn/reghao/oss/store/service/GetObjectService.java
  18. 8 7
      oss-store/src/main/java/cn/reghao/oss/store/service/ObjectMultipartUploadService.java
  19. 1 7
      oss-store/src/main/java/cn/reghao/oss/store/service/ObjectNameService.java
  20. 3 21
      oss-store/src/main/java/cn/reghao/oss/store/service/StoreLocalService.java
  21. 4 9
      oss-store/src/main/java/cn/reghao/oss/store/task/MediaFileProcessor.java
  22. 5 7
      oss-store/src/main/java/cn/reghao/oss/store/task/VideoFileProcessor.java

+ 2 - 2
oss-api/src/main/java/cn/reghao/oss/api/iface/ConsoleService.java

@@ -13,8 +13,8 @@ import cn.reghao.oss.api.dto.StoreNodeDto;
  */
 public interface ConsoleService {
     void registerNode(StoreNodeDto storeNodeDto);
-    NodeProperties getNodeProperties(int owner, String nodeAddress);
+    NodeProperties getNodeProperties(String domain);
     ObjectChannel getChannelById(int owner, int channelId);
-    int getChannelIdByUrl(int loginUser, String url);
+    Integer getChannelIdByUrl(int loginUser, String url);
     ServerInfo getUploadStore(int loginUser, int channelId);
 }

+ 1 - 1
oss-api/src/main/java/cn/reghao/oss/api/iface/StoreService.java

@@ -23,7 +23,7 @@ public interface StoreService {
     void deleteByObjectId(String objectId);
     void deleteByObjectUrl(String objectUrl);
     ObjectInfo getObjectInfo(String objectId);
-    String getSignedUrl(int loginUser, String objectId);
+    String getSignedUrl(String domain, int loginUser, String objectId);
 
     VideoInfo getVideoInfo(String objectId);
     ImageInfo getImageInfo(String objectId);

+ 1 - 1
oss-api/src/main/java/cn/reghao/oss/api/iface/StoreServiceWrapper.java

@@ -18,7 +18,7 @@ public interface StoreServiceWrapper {
     void createChannel(int channelId, String channelPrefix);
     StoreInfo getStoreInfo(int channelId);
 
-    int getChannelScope(int channelId);
+    Integer getChannelScope(int channelId);
     void setObjectScope(int channelId, String objectId, int scope);
     void deleteByObjectId(int channelId, String objectId);
     void deleteByObjectUrl(String objectUrl);

+ 1 - 1
oss-console/src/main/java/cn/reghao/oss/console/app/controller/OssController.java

@@ -37,7 +37,7 @@ public class OssController {
     }
 
     @ApiOperation(value = "获取 channel 可见范围")
-    @PostMapping(value = "/channel/scope", produces = MediaType.APPLICATION_JSON_VALUE)
+    @GetMapping(value = "/channel/scope", produces = MediaType.APPLICATION_JSON_VALUE)
     public String getChannelScope(int channelId) throws Exception {
         int scope = storeServiceWrapper.getChannelScope(channelId);
         return WebResult.success(scope);

+ 3 - 1
oss-console/src/main/java/cn/reghao/oss/console/app/model/dto/UserNodeDto.java

@@ -3,6 +3,7 @@ package cn.reghao.oss.console.app.model.dto;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 
 /**
@@ -14,5 +15,6 @@ import javax.validation.constraints.NotNull;
 public class UserNodeDto {
     @NotNull
     private Integer nodeId;
-    private String description;
+    @NotBlank
+    private String bucket;
 }

+ 1 - 0
oss-console/src/main/java/cn/reghao/oss/console/app/model/po/UserNode.java

@@ -27,6 +27,7 @@ public class UserNode extends BaseEntity {
 
     public UserNode(UserNodeDto userNodeDto, int createBy) {
         this.nodeId = userNodeDto.getNodeId();
+        this.domain = String.format("oss-%s.reghao.cn", userNodeDto.getBucket());
         this.createBy = createBy;
     }
 }

+ 8 - 18
oss-console/src/main/java/cn/reghao/oss/console/app/rpc/ConsoleServiceImpl.java

@@ -1,10 +1,7 @@
 package cn.reghao.oss.console.app.rpc;
 
-import cn.reghao.jutil.jdk.security.RandomString;
-import cn.reghao.oss.api.constant.ChannelAction;
 import cn.reghao.oss.api.dto.*;
 import cn.reghao.oss.api.iface.StoreService;
-import cn.reghao.oss.api.util.JwtUtil;
 import cn.reghao.oss.console.app.model.po.StoreNode;
 import cn.reghao.oss.console.app.model.po.UploadChannel;
 import cn.reghao.oss.console.app.model.po.UserNode;
@@ -12,7 +9,6 @@ import cn.reghao.oss.console.app.service.StoreNodeService;
 import cn.reghao.oss.console.app.service.UploadChannelService;
 import cn.reghao.oss.api.iface.ConsoleService;
 import cn.reghao.oss.console.app.service.UserNodeService;
-import com.github.benmanes.caffeine.cache.Cache;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.stereotype.Service;
 
@@ -28,16 +24,14 @@ public class ConsoleServiceImpl implements ConsoleService {
     private final UploadChannelService uploadChannelService;
     private final StoreNodeService storeNodeService;
     private final UserNodeService userNodeService;
-    private RpcService rpcService;
-    private final Cache<String, String> cache;
+    private final RpcService rpcService;
 
     public ConsoleServiceImpl(UploadChannelService uploadChannelService, StoreNodeService storeNodeService,
-                              UserNodeService userNodeService, RpcService rpcService, Cache<String, String> cache) {
+                              UserNodeService userNodeService, RpcService rpcService) {
         this.uploadChannelService = uploadChannelService;
         this.storeNodeService = storeNodeService;
         this.userNodeService = userNodeService;
         this.rpcService = rpcService;
-        this.cache = cache;
     }
 
     @Override
@@ -46,14 +40,10 @@ public class ConsoleServiceImpl implements ConsoleService {
     }
 
     @Override
-    public NodeProperties getNodeProperties(int owner, String nodeAddress) {
-        StoreNode storeNode = storeNodeService.getByNodeAddr(nodeAddress);
-        if (storeNode != null) {
-            int nodeId = storeNode.getId();
-            UserNode userNode = userNodeService.getUserNode(nodeId, owner);
-            if (userNode != null) {
-                return new NodeProperties(userNode.getDomain(), userNode.getSecretKey(), userNode.getReferer());
-            }
+    public NodeProperties getNodeProperties(String domain) {
+        UserNode userNode = userNodeService.getUserNodeByDomain(domain);
+        if (userNode != null) {
+            return new NodeProperties(userNode.getDomain(), userNode.getSecretKey(), userNode.getReferer());
         }
 
         return null;
@@ -65,7 +55,7 @@ public class ConsoleServiceImpl implements ConsoleService {
     }
 
     @Override
-    public int getChannelIdByUrl(int loginUser, String url) {
+    public Integer getChannelIdByUrl(int loginUser, String url) {
         List<UploadChannel> uploadChannels = uploadChannelService.getUploadChannelsByCreateBy(loginUser);
         String url1 = url.replace("//", "");
         int idx = url1.indexOf("/");
@@ -76,7 +66,7 @@ public class ConsoleServiceImpl implements ConsoleService {
             }
         }
 
-        return 0;
+        return -1;
     }
 
     @Override

+ 18 - 8
oss-console/src/main/java/cn/reghao/oss/console/app/rpc/StoreServiceWrapperImpl.java

@@ -13,6 +13,7 @@ import cn.reghao.oss.api.util.AuthContext;
 import cn.reghao.oss.console.app.model.po.StoreNode;
 import cn.reghao.oss.console.app.model.po.UploadChannel;
 import cn.reghao.oss.console.app.service.UploadChannelService;
+import cn.reghao.oss.console.app.service.UserNodeService;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -24,15 +25,18 @@ import java.util.List;
 @Service
 public class StoreServiceWrapperImpl implements StoreServiceWrapper {
     private final UploadChannelService uploadChannelService;
+    private final UserNodeService userNodeService;
     private final RpcService rpcService;
 
-    public StoreServiceWrapperImpl(UploadChannelService uploadChannelService, RpcService rpcService) {
+    public StoreServiceWrapperImpl(UploadChannelService uploadChannelService, RpcService rpcService,
+                                   UserNodeService userNodeService) {
         this.uploadChannelService = uploadChannelService;
         this.rpcService = rpcService;
+        this.userNodeService = userNodeService;
     }
 
     @Override
-    public int getChannelScope(int channelId) {
+    public Integer getChannelScope(int channelId) {
         int loginUser = AuthContext.getUserId();
         ObjectChannel objectChannel = uploadChannelService.getObjectChannelByChannelId(channelId, loginUser);
         if (objectChannel != null) {
@@ -128,7 +132,8 @@ public class StoreServiceWrapperImpl implements StoreServiceWrapper {
             StoreService storeService = getStoreService(channelId);
             int loginUser = AuthContext.getUserId();
             int expireSecond = 3600;
-            return storeService.getObjectInfo(objectId);
+            ObjectInfo objectInfo = storeService.getObjectInfo(objectId);
+            return objectInfo;
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -139,9 +144,10 @@ public class StoreServiceWrapperImpl implements StoreServiceWrapper {
     @Override
     public String getSignedUrl(int channelId, String objectId) {
         int loginUser = AuthContext.getUserId();
+        String domain = userNodeService.getDomain(channelId, loginUser);
         try {
             StoreService storeService = getStoreService(channelId);
-            return storeService.getSignedUrl(loginUser, objectId);
+            return storeService.getSignedUrl(domain, loginUser, objectId);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -153,7 +159,8 @@ public class StoreServiceWrapperImpl implements StoreServiceWrapper {
     public VideoInfo getVideoInfo(int channelId, String videoFileId) {
         try {
             StoreService storeService = getStoreService(channelId);
-            return storeService.getVideoInfo(videoFileId);
+            VideoInfo videoInfo = storeService.getVideoInfo(videoFileId);
+            return videoInfo;
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -165,7 +172,8 @@ public class StoreServiceWrapperImpl implements StoreServiceWrapper {
     public ImageInfo getImageInfo(int channelId, String imageFileId) {
         try {
             StoreService storeService = getStoreService(channelId);
-            return storeService.getImageInfo(imageFileId);
+            ImageInfo imageInfo = storeService.getImageInfo(imageFileId);
+            return imageInfo;
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -178,7 +186,8 @@ public class StoreServiceWrapperImpl implements StoreServiceWrapper {
         try {
             int loginUser = AuthContext.getUserId();
             StoreService storeService = getStoreService(channelId);
-            return storeService.getWebpInfo(imageFileId);
+            ConvertedImageInfo convertedImageInfo = storeService.getWebpInfo(imageFileId);
+            return convertedImageInfo;
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -190,7 +199,8 @@ public class StoreServiceWrapperImpl implements StoreServiceWrapper {
     public AudioInfo getAudioInfo(int channelId, String audioFileId) {
         try {
             StoreService storeService = getStoreService(channelId);
-            return storeService.getAudioInfo(audioFileId);
+            AudioInfo audioInfo = storeService.getAudioInfo(audioFileId);
+            return audioInfo;
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 11 - 0
oss-console/src/main/java/cn/reghao/oss/console/app/service/UserNodeService.java

@@ -94,4 +94,15 @@ public class UserNodeService {
     public UserNode getUserNode(int nodeId, int loginUser) {
         return userNodeRepository.findByCreateByAndNodeId(loginUser, nodeId);
     }
+
+    public UserNode getUserNodeByDomain(String domain) {
+        return userNodeRepository.findByDomain(domain);
+    }
+
+    public String getDomain(int channelId, int loginUser) {
+        UploadChannel uploadChannel = uploadChannelRepository.findByCreateByAndChannelId(loginUser, channelId);
+        int nodeId = uploadChannel.getNodeId();
+        UserNode userNode = userNodeRepository.findByCreateByAndNodeId(loginUser, nodeId);
+        return userNode.getDomain();
+    }
 }

+ 3 - 3
oss-console/src/main/resources/templates/usernode/add.html

@@ -9,7 +9,7 @@
             <tbody>
             <tr>
                 <th>
-                    <label class="layui-form-label required">存储节点</label>
+                    <label class="layui-form-label required">选择存储节点</label>
                 </th>
                 <td>
                     <div class="layui-form-item">
@@ -23,12 +23,12 @@
             </tr>
             <tr>
                 <th>
-                    <label class="layui-form-label">简介</label>
+                    <label class="layui-form-label">bucket</label>
                 </th>
                 <td>
                     <div class="layui-form-item">
                         <div class="layui-input-inline">
-                            <textarea class="layui-textarea" name="description" placeholder="请填写节点简介"></textarea>
+                            <input class="layui-input" name="bucket" placeholder="请填写节点 bucket"/>
                         </div>
                     </div>
                 </td>

+ 2 - 2
oss-sdk/src/main/java/cn/reghao/oss/sdk/OssConsoleClient.java

@@ -133,7 +133,7 @@ public class OssConsoleClient {
         formData.put("scope", scope+"");
         formData.put("objectId", objectId);
 
-        String api = String.format("%s/api/oss/object/scope/object", endpoint);
+        String api = String.format("%s/api/oss/object/scope", endpoint);
         HttpRequest httpRequest = HttpRequest.newBuilder(new URI(api))
                 .header("authorization", "Bearer " + token)
                 .headers("content-type", "application/x-www-form-urlencoded")
@@ -300,7 +300,7 @@ public class OssConsoleClient {
     }
 
     public ImageInfo getImageInfo(int channelId, String objectId) throws Exception {
-        String api = String.format("%s/api/oss/object/image?channelId=%s&objectId=%s", endpoint, channelId, objectId);
+        String api = String.format("%s/api/oss/object/image/info?channelId=%s&objectId=%s", endpoint, channelId, objectId);
         HttpRequest httpRequest = HttpRequest.newBuilder(new URI(api))
                 .header("authorization", "Bearer " + token)
                 .headers("content-type", "application/x-www-form-urlencoded")

+ 6 - 0
oss-store/README.md

@@ -15,3 +15,9 @@
 store 启动时注册到 console -> 用户选择 store -> 用户配置 store 
 -> 用户在 store 上创建上传 channel -> 用户通过 channelId+accessKey+accessSecret 上传和访问文件
 ``` 
+
+### 访问权限
+每个文件对象有一个作用域, 非 public 作用域的对象需要获取一个签名 url 后才可访问
+
+### 存储
+重写 HttpMessageConverter, 实现将上传的文件直接存储指定位置, 在后续逻辑中通过 sha256sum 值来判断是否删除文件

+ 8 - 1
oss-store/src/main/java/cn/reghao/oss/store/config/inerceptor/AccessLogInterceptor.java

@@ -1,6 +1,7 @@
 package cn.reghao.oss.store.config.inerceptor;
 
 import cn.reghao.jutil.web.ServletUtil;
+import cn.reghao.oss.api.dto.NodeProperties;
 import cn.reghao.oss.store.service.StoreLocalService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.lang.Nullable;
@@ -42,7 +43,13 @@ public class AccessLogInterceptor implements HandlerInterceptor {
             return true;
         }
 
-        String referFrom = storeLocalService.getReferer();
+        String host = ServletUtil.getHeader("host");
+        String referFrom = null;
+        NodeProperties nodeProperties = storeLocalService.getNodeProperties(host);
+        if (nodeProperties != null) {
+            referFrom = nodeProperties.getReferer();
+        }
+
         String objectName = uri.replaceFirst("/", "");
         if (objectName.startsWith("img/")) {
             return true;

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

@@ -1,5 +1,6 @@
 package cn.reghao.oss.store.controller;
 
+import cn.reghao.jutil.web.ServletUtil;
 import cn.reghao.oss.api.constant.ChannelAction;
 import cn.reghao.oss.api.constant.ObjectScope;
 import cn.reghao.oss.api.dto.ObjectChannel;
@@ -67,7 +68,8 @@ public class ObjectGetController {
 
         String secretKey = cache.getIfPresent(token);
         String queryString = String.format("token=%s&t=%s&nonce=%s", token, timestamp, nonce);
-        String url = String.format("//%s/%s", storeLocalService.getDomain(), objectName);
+        String host = ServletUtil.getHeader("host");
+        String url = String.format("//%s/%s", host, objectName);
         String requestString = String.format("%s%s?%s", "GET", url, queryString);
         boolean valid = SignatureUtil.valid(requestString, secretKey, sign);
         if (!valid) {

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

@@ -111,7 +111,8 @@ public class ObjectUploadController {
         ObjectProp objectProp = objectNameService.getObjectProp(objectChannel, filename);
         ObjectResult objectResult = putObjectService.putObject(objectProp, contentId, savedFile, filename, sha256sum1);
         String objectId = objectResult.getObjectId();
-        String objectUrl = objectNameService.getObjectUrl(objectResult.getObjectName());
+        String domain = ServletUtil.getHeader("host");
+        String objectUrl = String.format("//%s/%s", domain, objectResult.getObjectName());
         UploadFileRet uploadFileRet;
         if (objectChannel.getSeturl()) {
             uploadFileRet = new UploadFileRet(objectId, objectUrl);

+ 2 - 3
oss-store/src/main/java/cn/reghao/oss/store/rpc/StoreServiceImpl.java

@@ -16,7 +16,6 @@ import cn.reghao.oss.store.service.FileStoreService;
 import cn.reghao.oss.store.service.ObjectNameService;
 import cn.reghao.oss.api.iface.StoreService;
 import cn.reghao.oss.store.service.SignService;
-import cn.reghao.oss.store.service.StoreLocalService;
 import cn.reghao.oss.store.task.MediaFileProcessor;
 import com.github.benmanes.caffeine.cache.Cache;
 import org.apache.dubbo.config.annotation.DubboService;
@@ -114,10 +113,10 @@ public class StoreServiceImpl implements StoreService {
     }
 
     @Override
-    public String getSignedUrl(int loginUser, String objectId) {
+    public String getSignedUrl(String domain, int loginUser, String objectId) {
         int expire = 3600;
         ObjectMeta objectMeta = objectRepository.getObjectMetaById(objectId);
-        String url = objectNameService.getObjectUrl(objectMeta.getObjectName());
+        String url = String.format("//%s/%s", domain, objectMeta.getObjectName());
         return signService.getSignedUrl(loginUser, url, expire);
     }
 

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

@@ -1,5 +1,6 @@
 package cn.reghao.oss.store.service;
 
+import cn.reghao.oss.api.dto.NodeProperties;
 import cn.reghao.oss.store.db.mapper.FileMetaMapper;
 import cn.reghao.oss.store.model.dto.ContentRange;
 import cn.reghao.oss.store.model.po.FileMeta;
@@ -79,7 +80,13 @@ public class GetObjectService {
             ContentRange contentRange = parseContentRange(range, len);
             writeContentRange(objectMeta, contentRange);
         } else {
-            if (host.contains(storeLocalService.getDomain())) {
+            String domain = host;
+            NodeProperties nodeProperties = storeLocalService.getNodeProperties(host);
+            if (nodeProperties != null) {
+                domain = nodeProperties.getDomain();
+            }
+
+            if (host.contains(domain)) {
                 writeWholeContent(objectMeta);
             } else {
                 writeDownloadContent(objectMeta);

+ 8 - 7
oss-store/src/main/java/cn/reghao/oss/store/service/ObjectMultipartUploadService.java

@@ -1,5 +1,6 @@
 package cn.reghao.oss.store.service;
 
+import cn.reghao.jutil.web.ServletUtil;
 import cn.reghao.oss.api.dto.ObjectChannel;
 import cn.reghao.oss.store.db.mapper.FileMetaMapper;
 import cn.reghao.oss.store.model.dto.PathUrl;
@@ -33,16 +34,13 @@ public class ObjectMultipartUploadService {
     private final Map<String, PathUrl> pathMap = new HashMap<>();
     private final ObjectNameService objectNameService;
     private final PutObjectService putObjectService;
-    private final StoreLocalService storeLocalService;
 
     public ObjectMultipartUploadService(FileMetaMapper fileMetaMapper, FileStoreService fileStoreService,
-                                        ObjectNameService objectNameService, PutObjectService putObjectService,
-                                        StoreLocalService storeLocalService) {
+                                        ObjectNameService objectNameService, PutObjectService putObjectService) {
         this.fileMetaMapper = fileMetaMapper;
         this.fileStoreService = fileStoreService;
         this.objectNameService = objectNameService;
         this.putObjectService = putObjectService;
-        this.storeLocalService = storeLocalService;
     }
 
     public synchronized UploadPrepareRet prepareUpload(UploadPrepare uploadPrepare) {
@@ -52,7 +50,8 @@ public class ObjectMultipartUploadService {
             return new UploadPrepareRet("uploadId", PART_SIZE, false, null);
         } else {
             String objectName = fileMeta.getObjectName();
-            String url = String.format("//%s/%s", storeLocalService.getDomain(), objectName);
+            String host = ServletUtil.getHeader("host");
+            String url = String.format("//%s/%s", host, objectName);
             return new UploadPrepareRet("uploadId", PART_SIZE, false, url);
         }
     }
@@ -83,7 +82,8 @@ public class ObjectMultipartUploadService {
             ObjectProp objectProp = objectNameService.getObjectProp(objectChannel, suffix);
             putObjectService.copyObject(objectProp, filename, fileMeta);
 
-            String url = String.format("//%s/%s", storeLocalService.getDomain(), objectProp);
+            String host = ServletUtil.getHeader("host");
+            String url = String.format("//%s/%s", host, objectProp);
             return new UploadFileRet(sha256sum, url);
         }
 
@@ -125,7 +125,8 @@ public class ObjectMultipartUploadService {
 
             map.remove(sha256sum);
             pathMap.remove(sha256sum);
-            String url = String.format("//%s/%s", storeLocalService.getDomain(), objectProp);
+            String host = ServletUtil.getHeader("host");
+            String url = String.format("//%s/%s", host, objectProp);
             return new UploadFileRet(sha256sum, url);
         }
     }

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

@@ -18,15 +18,9 @@ import java.util.UUID;
 @Service
 public class ObjectNameService {
     private final ObjectRepository objectRepository;
-    private final StoreLocalService storeLocalService;
 
-    public ObjectNameService(ObjectRepository objectRepository, StoreLocalService storeLocalService) {
+    public ObjectNameService(ObjectRepository objectRepository) {
         this.objectRepository = objectRepository;
-        this.storeLocalService = storeLocalService;
-    }
-
-    public String getObjectUrl(String objectName) {
-        return String.format("//%s/%s", storeLocalService.getDomain(), objectName);
     }
 
     public ObjectProp getObjectProp(ObjectChannel channel, String filename) throws Exception {

+ 3 - 21
oss-store/src/main/java/cn/reghao/oss/store/service/StoreLocalService.java

@@ -2,8 +2,6 @@ package cn.reghao.oss.store.service;
 
 import cn.reghao.oss.api.dto.NodeProperties;
 import cn.reghao.oss.api.iface.ConsoleService;
-import cn.reghao.oss.api.util.AuthContext;
-import cn.reghao.oss.store.config.props.OssProperties;
 import cn.reghao.oss.api.dto.StoreNodeDto;
 import cn.reghao.oss.api.dto.ObjectChannel;
 import org.springframework.stereotype.Service;
@@ -15,10 +13,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class StoreLocalService {
     private final ConsoleService consoleService;
-    private final String nodeAddress;
 
-    public StoreLocalService(OssProperties ossProperties, ConsoleService consoleService) {
-        this.nodeAddress = ossProperties.getHost();
+    public StoreLocalService(ConsoleService consoleService) {
         this.consoleService = consoleService;
     }
 
@@ -26,22 +22,8 @@ public class StoreLocalService {
         consoleService.registerNode(storeNodeDto);
     }
 
-    public String getDomain() {
-        int loginUser = AuthContext.getUserId();
-        NodeProperties nodeProperties = consoleService.getNodeProperties(loginUser, nodeAddress);
-        return nodeProperties != null ? nodeProperties.getDomain() : null;
-    }
-
-    public String getReferer() {
-        int loginUser = AuthContext.getUserId();
-        NodeProperties nodeProperties = consoleService.getNodeProperties(loginUser, nodeAddress);
-        return nodeProperties != null ? nodeProperties.getReferer() : null;
-    }
-
-    public String getSecretKey() {
-        int loginUser = AuthContext.getUserId();
-        NodeProperties nodeProperties = consoleService.getNodeProperties(loginUser, nodeAddress);
-        return nodeProperties != null ? nodeProperties.getSecretKey() : null;
+    public NodeProperties getNodeProperties(String host) {
+        return consoleService.getNodeProperties(host);
     }
 
     public ObjectChannel getChannelById(int loginUser, int channelId) {

+ 4 - 9
oss-store/src/main/java/cn/reghao/oss/store/task/MediaFileProcessor.java

@@ -80,7 +80,6 @@ public class MediaFileProcessor {
 
         String objectId = videoFileId;
         String objectName = objectMeta.getObjectName();
-        String objectUrl = objectNameService.getObjectUrl(objectName);
         int width = videoProps.getCodedWidth().intValue();
         int height = videoProps.getCodedHeight().intValue();
         int duration = videoProps.getDuration().intValue();
@@ -90,7 +89,7 @@ public class MediaFileProcessor {
         LocalDateTime createTime = mediaProps.getCreateTime();
 
         return new VideoInfo(videoFileId, objectId, videoCodec, vbitRate, audioCodec, abitRate,
-                urlType, objectUrl, quality, width, height, duration, createTime);
+                urlType, objectName, quality, width, height, duration, createTime);
     }
 
     public ImageInfo getImageInfo(String imageFileId) throws Exception {
@@ -107,9 +106,8 @@ public class MediaFileProcessor {
         int height = size.getHeight();
         String objectId = imageFileId;
         String objectName = objectMeta.getObjectName();
-        String objectUrl = objectNameService.getObjectUrl(objectName);
 
-        ImageInfo imageInfo = new ImageInfo(imageFileId, objectId, format, objectUrl, width, height);
+        ImageInfo imageInfo = new ImageInfo(imageFileId, objectId, format, objectName, width, height);
         return imageInfo;
     }
 
@@ -149,8 +147,7 @@ public class MediaFileProcessor {
             ObjectResult objectResult1 = putObjectService.putObject(originalObjectName, contentId, suffix, destFile);
             String objectName1 = objectResult1.getObjectName();
             String objectId1 = objectResult1.getObjectId();
-            String objectUrl1 = objectNameService.getObjectUrl(objectName1);
-            ConvertedImageInfo convertedImageInfo = new ConvertedImageInfo(imageFileId, objectId1, format, objectUrl1);
+            ConvertedImageInfo convertedImageInfo = new ConvertedImageInfo(imageFileId, objectId1, format, objectName1);
             return convertedImageInfo;
         } else {
             log.error("image conversion failed");
@@ -191,8 +188,6 @@ public class MediaFileProcessor {
         long bitRate = audioProps.getBitRate();
         String objectId = audioFileId;
         String objectName = objectMeta.getObjectName();
-        String objectUrl = objectNameService.getObjectUrl(objectName);
-
-        return new AudioInfo(audioFileId, objectId, duration, audioCodec, bitRate, objectUrl);
+        return new AudioInfo(audioFileId, objectId, duration, audioCodec, bitRate, objectName);
     }
 }

+ 5 - 7
oss-store/src/main/java/cn/reghao/oss/store/task/VideoFileProcessor.java

@@ -49,14 +49,13 @@ public class VideoFileProcessor {
         String objectName = objectResult.getObjectName();
         String objectId = objectResult.getObjectId();
         String videoFileId = objectId;
-        String objectUrl = objectNameService.getObjectUrl(objectName);
         boolean duplicate = objectResult.isDuplicate();
         if (duplicate) {
             String dupObjectId = objectResult.getDupObjectId();
             //List<VideoFile> videoFiles = videoRepository.getVideoFiles(dupObjectId);
             List<VideoFile> videoFiles = new ArrayList<>();
             VideoFile videoFile = videoFiles.get(0);
-            VideoFile videoFile1 = new VideoFile(videoFileId, objectId, objectUrl, videoFile);
+            VideoFile videoFile1 = new VideoFile(videoFileId, objectId, objectName, videoFile);
             List<VideoFile> list = new ArrayList<>();
             list.add(videoFile1);
 
@@ -65,8 +64,8 @@ public class VideoFileProcessor {
                     VideoFile videoFile2 = videoFiles.get(i);
                     ObjectResult objectResult1 = putObjectService.copyFromObjectId(videoFile2.getObjectId());
                     String objectId1 = objectResult1.getObjectId();
-                    String objectUrl1 = objectNameService.getObjectUrl(objectResult1.getObjectName());
-                    list.add(new VideoFile(videoFileId, objectId1, objectUrl1, videoFile2));
+                    String objectName1 = objectResult1.getObjectName();
+                    list.add(new VideoFile(videoFileId, objectId1, objectName1, videoFile2));
                 }
             }
 
@@ -115,7 +114,7 @@ public class VideoFileProcessor {
         String quality = mediaResolution.getQualityStr();
         String urlType = FileType.getVideoUrlType(absolutePath);
         VideoFile videoFile = new VideoFile(videoFileId, objectId, videoCodec, vbitRate, audioCodec, abitRate,
-                urlType, objectUrl, quality, width, height, duration);
+                urlType, objectName, quality, width, height, duration);
         //videoRepository.saveVideoFiles(List.of(videoFile));
         return new UploadFileRet(videoFileId, null);
     }
@@ -159,7 +158,6 @@ public class VideoFileProcessor {
                 ObjectResult objectResult = putObjectService.putObject(objectProp, contentId, savedFile, originalFilename, sha256sum);
 
                 String objectId = objectResult.getObjectId();
-                String url = objectNameService.getObjectUrl(objectResult.getObjectName());
                 String urlType = FileType.getVideoUrlType(destPath);
 
                 MediaProps mediaProps = FFmpegWrapper.getMediaProps(destPath);
@@ -189,7 +187,7 @@ public class VideoFileProcessor {
                 MediaResolution mediaResolution = MediaQuality.getQuality(width, height);
                 String quality = mediaResolution.getQualityStr();
                 VideoFile videoFile1 = new VideoFile(videoFileId, objectId, videoCodec, vbitRate, audioCodec, abitRate,
-                        urlType, url, quality, width, height, duration);
+                        urlType, objectResult.getObjectName(), quality, width, height, duration);
             } catch (Exception e) {
                 e.printStackTrace();
             }