Przeglądaj źródła

使用 cn.reghao.oss 包

reghao 3 miesięcy temu
rodzic
commit
59e03ea409
73 zmienionych plików z 130 dodań i 2421 usunięć
  1. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/chat/service/ChatMessageService.java
  2. 2 2
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/db/mapper/AudioFileMapper.java
  3. 2 2
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/db/repository/AudioRepository.java
  4. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/model/vo/StatusCard.java
  5. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/service/AudioPostService.java
  6. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/data/service/ImagePostService.java
  7. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/mall/service/ProductService.java
  8. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/controller/VideoPostController.java
  9. 2 2
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/mapper/VideoFileMapper.java
  10. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/mapper/VideoPostMapper.java
  11. 2 2
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/repository/VideoRepository.java
  12. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/model/po/PostItem.java
  13. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/model/po/VideoFile.java
  14. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/AdminVodService.java
  15. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/CrawledDataService.java
  16. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/VideoPostQuery.java
  17. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/VideoService.java
  18. 1 1
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPlayServiceImpl.java
  19. 2 2
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPostQueryImpl.java
  20. 3 3
      content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPostServiceImpl.java
  21. 2 2
      content/content-service/src/main/resources/mapper/data/AudioFileMapper.xml
  22. 2 2
      content/content-service/src/main/resources/mapper/vod/VideoFileMapper.xml
  23. 3 3
      file/file-api/src/main/java/cn/reghao/file/api/constant/UploadChannelType.java
  24. 6 6
      file/file-api/src/main/java/cn/reghao/file/api/iface/OssService.java
  25. 0 87
      file/file-service/src/main/java/cn/reghao/tnb/file/app/config/web/OssSdkInterceptor.java
  26. 0 13
      file/file-service/src/main/java/cn/reghao/tnb/file/app/config/web/WebConfig.java
  27. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/controller/FileOssController.java
  28. 46 34
      file/file-service/src/main/java/cn/reghao/tnb/file/app/rpc/StoreServiceWrapperRouter.java
  29. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/service/AvatarService.java
  30. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/service/FileService.java
  31. 0 100
      file/file-service/src/main/java/cn/reghao/tnb/file/app/service/OssFileService.java
  32. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/model/po/DiskFile.java
  33. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/model/vo/DiskFileDetail.java
  34. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/model/vo/FileInfo.java
  35. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/CamRecordService.java
  36. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/DiskAlbumService.java
  37. 2 2
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/DiskFileService.java
  38. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/DiskFolderService.java
  39. 0 146
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/OssSdkController.java
  40. 0 64
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/StoreNodeController.java
  41. 0 97
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/StoreObjectController.java
  42. 0 110
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/UploadChannelController.java
  43. 0 45
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/UserKeyController.java
  44. 0 69
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/UserNodeController.java
  45. 0 17
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/mapper/StoreNodeMapper.java
  46. 0 16
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/mapper/StoreVolumeMapper.java
  47. 0 25
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/mapper/UploadChannelMapper.java
  48. 0 17
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/mapper/UserKeyMapper.java
  49. 0 28
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/mapper/UserNodeMapper.java
  50. 0 37
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/repository/ChannelRepository.java
  51. 0 56
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/repository/StoreRepository.java
  52. 0 22
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/dto/KeyAuthDto.java
  53. 0 26
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/dto/NodeAddDto.java
  54. 0 28
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/dto/NodeUpdateDto.java
  55. 0 35
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/dto/UploadChannelDto.java
  56. 0 37
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/po/StoreNode.java
  57. 0 63
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/po/StoreVolume.java
  58. 0 75
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/po/UploadChannel.java
  59. 0 36
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/po/UserKey.java
  60. 0 51
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/po/UserNode.java
  61. 0 17
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/vo/AddChannelAttr.java
  62. 0 30
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/vo/FileInfo.java
  63. 0 33
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/vo/StoreNodeInfo.java
  64. 0 115
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/rpc/ConsoleServiceImpl.java
  65. 0 33
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/rpc/RemoteService.java
  66. 0 51
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/rpc/RpcService.java
  67. 0 153
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/rpc/StoreServiceWrapper.java
  68. 0 179
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/service/StoreNodeService.java
  69. 0 163
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/service/UploadChannelService.java
  70. 0 94
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/service/UserKeyService.java
  71. 0 165
      file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/service/UserNodeService.java
  72. 31 1
      file/file-service/src/test/java/DiskUnitTest.java
  73. 2 2
      file/pom.xml

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/chat/service/ChatMessageService.java

@@ -3,7 +3,7 @@ package cn.reghao.tnb.content.app.chat.service;
 import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.converter.DateTimeConverter;
 import cn.reghao.jutil.jdk.string.SnowFlake;
-import cn.reghao.tnb.oss.api.dto.ObjectInfo;
+import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.content.app.chat.db.mapper.*;
 import cn.reghao.tnb.content.app.chat.model.constant.MsgType;

+ 2 - 2
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/db/mapper/AudioFileMapper.java

@@ -2,8 +2,8 @@ package cn.reghao.tnb.content.app.data.db.mapper;
 
 import cn.reghao.jutil.jdk.web.db.BaseMapper;
 import cn.reghao.tnb.content.app.data.model.po.AudioFile;
-import cn.reghao.tnb.oss.api.dto.media.AudioInfo;
-import cn.reghao.tnb.oss.api.dto.media.AudioUrl;
+import cn.reghao.oss.api.dto.media.AudioInfo;
+import cn.reghao.oss.api.dto.media.AudioUrl;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;

+ 2 - 2
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/db/repository/AudioRepository.java

@@ -2,8 +2,8 @@ package cn.reghao.tnb.content.app.data.db.repository;
 
 import cn.reghao.tnb.content.app.data.db.mapper.AudioFileMapper;
 import cn.reghao.tnb.content.app.data.model.po.AudioFile;
-import cn.reghao.tnb.oss.api.dto.media.AudioInfo;
-import cn.reghao.tnb.oss.api.dto.media.AudioUrl;
+import cn.reghao.oss.api.dto.media.AudioInfo;
+import cn.reghao.oss.api.dto.media.AudioUrl;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/model/vo/StatusCard.java

@@ -1,6 +1,6 @@
 package cn.reghao.tnb.content.app.data.model.vo;
 
-import cn.reghao.tnb.oss.api.dto.media.ImageUrlDto;
+import cn.reghao.oss.api.dto.media.ImageUrlDto;
 import cn.reghao.tnb.user.api.dto.UserInfo;
 import lombok.Data;
 

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/service/AudioPostService.java

@@ -11,7 +11,7 @@ import cn.reghao.tnb.content.app.data.db.mapper.AudioPostMapper;
 import cn.reghao.tnb.content.app.data.model.dto.AudioScopeUpdate;
 import cn.reghao.tnb.content.app.data.model.po.AudioPost;
 import cn.reghao.tnb.content.app.data.model.vo.UserAudioCard;
-import cn.reghao.tnb.oss.api.dto.media.AudioInfo;
+import cn.reghao.oss.api.dto.media.AudioInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.stereotype.Service;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/data/service/ImagePostService.java

@@ -5,7 +5,7 @@ import cn.reghao.jutil.jdk.web.db.Page;
 import cn.reghao.jutil.jdk.web.db.PageList;
 import cn.reghao.jutil.jdk.web.result.Result;
 import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.oss.api.dto.media.ImageInfo;
+import cn.reghao.oss.api.dto.media.ImageInfo;
 import cn.reghao.tnb.account.api.iface.AccountQuery;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.content.api.constant.PostScope;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/mall/service/ProductService.java

@@ -5,7 +5,7 @@ import cn.reghao.jutil.jdk.web.db.PageList;
 import cn.reghao.jutil.jdk.web.result.Result;
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
 import cn.reghao.jutil.jdk.string.SnowFlake;
-import cn.reghao.tnb.oss.api.dto.media.ImageInfo;
+import cn.reghao.oss.api.dto.media.ImageInfo;
 import cn.reghao.tnb.account.api.iface.AccountQuery;
 import cn.reghao.tnb.content.api.dto.TaobaoItem;
 import cn.reghao.tnb.content.app.mall.db.mapper.ProductMapper;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/controller/VideoPostController.java

@@ -11,7 +11,7 @@ import cn.reghao.tnb.content.app.vod.model.dto.*;
 import cn.reghao.tnb.content.api.dto.UserVideoPost;
 import cn.reghao.tnb.content.app.vod.service.VideoPostQuery;
 import cn.reghao.tnb.content.app.vod.service.VideoPostService;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.media.VideoInfo;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.http.MediaType;

+ 2 - 2
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/mapper/VideoFileMapper.java

@@ -2,8 +2,8 @@ package cn.reghao.tnb.content.app.vod.db.mapper;
 
 import cn.reghao.jutil.jdk.web.db.BaseMapper;
 import cn.reghao.tnb.content.app.vod.model.po.VideoFile;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
-import cn.reghao.tnb.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.media.VideoUrlDto;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/mapper/VideoPostMapper.java

@@ -11,7 +11,7 @@ import cn.reghao.tnb.content.app.vod.model.po.BannerVideo;
 import cn.reghao.tnb.content.app.vod.model.po.VideoPost;
 import cn.reghao.tnb.content.app.vod.model.vo.*;
 import cn.reghao.tnb.content.app.vod.model.dto.SearchCriteria;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.media.VideoInfo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 

+ 2 - 2
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/db/repository/VideoRepository.java

@@ -7,8 +7,8 @@ import cn.reghao.tnb.content.app.vod.db.mapper.VideoStatisticMapper;
 import cn.reghao.tnb.content.app.vod.model.po.VideoFile;
 import cn.reghao.tnb.content.app.vod.model.po.VideoPost;
 import cn.reghao.tnb.content.app.vod.model.po.VideoStatistic;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
-import cn.reghao.tnb.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.media.VideoUrlDto;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/model/po/PostItem.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.model.po;
 
 import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.tnb.oss.api.dto.media.ImageInfo;
+import cn.reghao.oss.api.dto.media.ImageInfo;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/model/po/VideoFile.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.model.po;
 
 import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.media.VideoInfo;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/AdminVodService.java

@@ -6,7 +6,7 @@ import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.web.db.Page;
 import cn.reghao.jutil.jdk.web.db.PageList;
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
-import cn.reghao.tnb.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.oss.api.dto.media.VideoUrlDto;
 import cn.reghao.tnb.content.api.constant.PostScope;
 import cn.reghao.tnb.content.api.dto.*;
 import cn.reghao.tnb.content.app.vod.db.mapper.SiteNoticeMapper;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/CrawledDataService.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.service;
 
 import cn.reghao.file.api.iface.OssService;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.media.VideoInfo;
 import cn.reghao.tnb.account.api.dto.AccountInfo;
 import cn.reghao.tnb.account.api.dto.CrawledUser;
 import cn.reghao.tnb.account.api.iface.AccountQuery;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/VideoPostQuery.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.service;
 
 import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.media.VideoInfo;
 import cn.reghao.tnb.content.api.dto.*;
 import cn.reghao.tnb.content.app.vod.model.po.VideoPost;
 import cn.reghao.tnb.content.app.vod.model.vo.BannerVideoVO;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/VideoService.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.service;
 
 import cn.reghao.file.api.iface.OssService;
-import cn.reghao.tnb.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.oss.api.dto.media.VideoUrlDto;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.content.app.vod.db.repository.VideoRepository;
 import cn.reghao.tnb.content.app.vod.model.po.VideoPost;

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPlayServiceImpl.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.vod.service.impl;
 
 import cn.reghao.file.api.iface.OssService;
-import cn.reghao.tnb.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.oss.api.dto.media.VideoUrlDto;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.common.db.PageScroll;
 import cn.reghao.tnb.common.util.ConstantId;

+ 2 - 2
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPostQueryImpl.java

@@ -4,8 +4,8 @@ import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.web.db.Page;
 import cn.reghao.jutil.jdk.web.db.PageList;
 import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
-import cn.reghao.tnb.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.media.VideoUrlDto;
 import cn.reghao.tnb.account.api.iface.AccountQuery;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.common.util.StringUtil;

+ 3 - 3
content/content-service/src/main/java/cn/reghao/tnb/content/app/vod/service/impl/VideoPostServiceImpl.java

@@ -4,9 +4,9 @@ import cn.reghao.file.api.iface.JobService;
 import cn.reghao.file.api.iface.OssService;
 import cn.reghao.jutil.jdk.web.result.Result;
 import cn.reghao.jutil.jdk.string.IdGenerator;
-import cn.reghao.tnb.oss.api.dto.media.ImageInfo;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
-import cn.reghao.tnb.oss.api.dto.media.VideoUrlDto;
+import cn.reghao.oss.api.dto.media.ImageInfo;
+import cn.reghao.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.media.VideoUrlDto;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.content.api.constant.PostScope;
 import cn.reghao.tnb.content.api.dto.VideoFilePublish;

+ 2 - 2
content/content-service/src/main/resources/mapper/data/AudioFileMapper.xml

@@ -22,13 +22,13 @@
         from audio_file
         where audio_file_id=#{audioFileId}
     </select>
-    <select id="findAudioInfo" resultType="cn.reghao.tnb.oss.api.dto.media.AudioInfo">
+    <select id="findAudioInfo" resultType="cn.reghao.oss.api.dto.media.AudioInfo">
         select audio_file_id,duration,codec,url
         from audio_file
         where audio_file_id=#{audioFileId}
         order by id desc
     </select>
-    <select id="findAudioUrl" resultType="cn.reghao.tnb.oss.api.dto.media.AudioUrl">
+    <select id="findAudioUrl" resultType="cn.reghao.oss.api.dto.media.AudioUrl">
         select audio_file_id,bit_rate,codec,url
         from audio_file
         where audio_file_id=#{audioFileId}

+ 2 - 2
content/content-service/src/main/resources/mapper/vod/VideoFileMapper.xml

@@ -27,7 +27,7 @@
         select *
         from vod_video_file
     </select>
-    <select id="findVideoInfo" resultType="cn.reghao.tnb.oss.api.dto.media.VideoInfo">
+    <select id="findVideoInfo" resultType="cn.reghao.oss.api.dto.media.VideoInfo">
         select object_id,duration,horizontal,quality,video_codec,audio_codec,url_type,url
         from vod_video_file
         where `deleted`=0 and object_id=#{objectId}
@@ -42,7 +42,7 @@
         from vod_video_file
         where `deleted`=0 and object_id=#{objectId}
     </select>
-    <select id="findVideoUrls" resultType="cn.reghao.tnb.oss.api.dto.media.VideoUrlDto">
+    <select id="findVideoUrls" resultType="cn.reghao.oss.api.dto.media.VideoUrlDto">
         select object_id,channel_code,url_type as type,url,width,height,quality
         from vod_video_file
         where `deleted`=0 and video_id=#{videoId}

+ 3 - 3
file/file-api/src/main/java/cn/reghao/file/api/constant/UploadChannelType.java

@@ -1,8 +1,8 @@
 package cn.reghao.file.api.constant;
 
-import cn.reghao.tnb.oss.api.constant.ObjectSize;
-import cn.reghao.tnb.oss.api.constant.ObjectScope;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
+import cn.reghao.oss.api.constant.ObjectSize;
+import cn.reghao.oss.api.constant.ObjectScope;
+import cn.reghao.oss.api.constant.ObjectType;
 
 /**
  * @author reghao

+ 6 - 6
file/file-api/src/main/java/cn/reghao/file/api/iface/OssService.java

@@ -1,11 +1,11 @@
 package cn.reghao.file.api.iface;
 
-import cn.reghao.tnb.oss.api.dto.ObjectInfo;
-import cn.reghao.tnb.oss.api.dto.ServerInfo;
-import cn.reghao.tnb.oss.api.dto.media.AudioInfo;
-import cn.reghao.tnb.oss.api.dto.media.ConvertedImageInfo;
-import cn.reghao.tnb.oss.api.dto.media.ImageInfo;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.ObjectInfo;
+import cn.reghao.oss.api.dto.ServerInfo;
+import cn.reghao.oss.api.dto.media.AudioInfo;
+import cn.reghao.oss.api.dto.media.ConvertedImageInfo;
+import cn.reghao.oss.api.dto.media.ImageInfo;
+import cn.reghao.oss.api.dto.media.VideoInfo;
 
 /**
  * @author reghao

+ 0 - 87
file/file-service/src/main/java/cn/reghao/tnb/file/app/config/web/OssSdkInterceptor.java

@@ -1,87 +0,0 @@
-package cn.reghao.tnb.file.app.config.web;
-
-import cn.reghao.jutil.jdk.http.HeaderNames;
-import cn.reghao.tnb.common.web.ServletUtil;
-import cn.reghao.tnb.common.auth.LoginUser;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.file.app.zoss.service.UserKeyService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.lang.Nullable;
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.HandlerInterceptor;
-import org.springframework.web.servlet.ModelAndView;
-
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.UUID;
-
-/**
- * oss-sdk 请求访问拦截器
- *
- * @author reghao
- * @date 2025-10-20 17:09:07
- */
-@Slf4j
-@Component
-public class OssSdkInterceptor implements HandlerInterceptor {
-    private final UserKeyService userKeyService;
-
-    public OssSdkInterceptor(UserKeyService userKeyService) {
-        this.userKeyService = userKeyService;
-    }
-
-    @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
-            throws Exception {
-        String requestId = UUID.randomUUID().toString().replace("-", "");
-        request.setAttribute(HeaderNames.XRequestId, requestId);
-        long startTime = System.currentTimeMillis();
-        request.setAttribute(HeaderNames.XRequestTime, startTime);
-
-        String uri = request.getRequestURI();
-        String method = request.getMethod();
-        if (uri.startsWith("/api/oss/sdk/")) {
-            if (uri.equals("/api/oss/sdk/key/auth")) {
-                return true;
-            }
-
-            String token = ServletUtil.getBearerToken();
-            if (token == null || token.isBlank()) {
-                log.error("request {} start with /bg/api/oss/, but not auth", uri);
-                response.setStatus(403);
-                return false;
-            }
-
-            LoginUser loginUser = userKeyService.getUserFromToken(token);
-            if (loginUser == null) {
-                log.error("request {} start with /api/oss/sdk, but not auth", uri);
-                response.setStatus(403);
-                return false;
-            }
-            UserContext user = new UserContext(loginUser);
-        }
-        return true;
-    }
-
-    private void writeResponse(HttpServletResponse response, String msg) throws IOException {
-        String retJson = WebResult.failWithMsg(msg);
-        response.setStatus(HttpServletResponse.SC_OK);
-        response.setContentType("application/json; charset=utf-8");
-        PrintWriter printWriter = response.getWriter();
-        printWriter.write(retJson);
-    }
-
-    @Override
-    public void postHandle(HttpServletRequest request, HttpServletResponse response,
-                           Object handler, @Nullable ModelAndView modelAndView) throws Exception {
-    }
-
-    @Override
-    public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
-                                Object handler, @Nullable Exception ex) throws Exception {
-    }
-}

+ 0 - 13
file/file-service/src/main/java/cn/reghao/tnb/file/app/config/web/WebConfig.java

@@ -3,7 +3,6 @@ package cn.reghao.tnb.file.app.config.web;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 import jakarta.servlet.Filter;
@@ -14,18 +13,6 @@ import jakarta.servlet.Filter;
  */
 @Configuration
 public class WebConfig implements WebMvcConfigurer {
-    private final OssSdkInterceptor ossSdkInterceptor;
-
-    public WebConfig(OssSdkInterceptor ossSdkInterceptor) {
-        this.ossSdkInterceptor = ossSdkInterceptor;
-    }
-
-    @Override
-    public void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor(ossSdkInterceptor)
-                .addPathPatterns("/api/oss/sdk/**");
-    }
-
     @Bean
     public FilterRegistrationBean<Filter> filterRegistrationBean1(TokenFilter tokenFilter) {
         FilterRegistrationBean<Filter> registrationBean = new FilterRegistrationBean<>();

+ 1 - 1
file/file-service/src/main/java/cn/reghao/tnb/file/app/controller/FileOssController.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.file.app.controller;
 
 import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.oss.api.dto.ServerInfo;
+import cn.reghao.oss.api.dto.ServerInfo;
 import cn.reghao.tnb.common.auth.AuthUser;
 import cn.reghao.file.api.constant.UploadChannelType;
 import cn.reghao.tnb.file.app.rpc.StoreServiceWrapperRouter;

+ 46 - 34
file/file-service/src/main/java/cn/reghao/tnb/file/app/rpc/StoreServiceWrapperRouter.java

@@ -1,19 +1,20 @@
 package cn.reghao.tnb.file.app.rpc;
 
 import cn.reghao.file.api.iface.OssService;
-import cn.reghao.tnb.file.app.zoss.rpc.StoreServiceWrapper;
-import cn.reghao.tnb.oss.api.iface.ConsoleService;
-import cn.reghao.tnb.oss.api.constant.ObjectScope;
-import cn.reghao.tnb.oss.api.dto.ObjectInfo;
-import cn.reghao.tnb.oss.api.dto.ServerInfo;
-import cn.reghao.tnb.oss.api.dto.media.AudioInfo;
-import cn.reghao.tnb.oss.api.dto.media.ConvertedImageInfo;
-import cn.reghao.tnb.oss.api.dto.media.ImageInfo;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
-import cn.reghao.tnb.file.app.zoss.db.repository.StoreRepository;
+import cn.reghao.oss.api.constant.ObjectAction;
+import cn.reghao.oss.sdk.OssClient;
+import cn.reghao.oss.api.constant.ObjectScope;
+import cn.reghao.oss.api.dto.ObjectInfo;
+import cn.reghao.oss.api.dto.ServerInfo;
+import cn.reghao.oss.api.dto.media.AudioInfo;
+import cn.reghao.oss.api.dto.media.ConvertedImageInfo;
+import cn.reghao.oss.api.dto.media.ImageInfo;
+import cn.reghao.oss.api.dto.media.VideoInfo;
+import cn.reghao.tnb.file.app.db.mapper.OssConfigMapper;
 import cn.reghao.tnb.file.app.model.constant.OssType;
-import cn.reghao.tnb.file.app.zoss.model.po.UploadChannel;
+import cn.reghao.tnb.file.app.model.po.OssConfig;
 import cn.reghao.tnb.file.app.service.StoreConfigService;
+import jakarta.annotation.PostConstruct;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.stereotype.Service;
 
@@ -25,25 +26,30 @@ import org.springframework.stereotype.Service;
 @Service
 public class StoreServiceWrapperRouter implements OssService {
     private final int ossType = 1;
-    private final ConsoleService consoleService;
-    private final StoreServiceWrapper storeServiceWrapper;
     private final StoreConfigService storeConfigService;
-    private final StoreRepository storeRepository;
+    private final OssConfigMapper ossConfigMapper;
+    private OssClient ossClient;
 
-    public StoreServiceWrapperRouter(ConsoleService consoleService, StoreServiceWrapper storeServiceWrapper,
-                                     StoreConfigService storeConfigService, StoreRepository storeRepository) {
-        this.consoleService = consoleService;
-        this.storeServiceWrapper = storeServiceWrapper;
+    public StoreServiceWrapperRouter(StoreConfigService storeConfigService, OssConfigMapper ossConfigMapper) {
         this.storeConfigService = storeConfigService;
-        this.storeRepository = storeRepository;
+        this.ossConfigMapper = ossConfigMapper;
+    }
+
+    @PostConstruct
+    public void init() {
+        OssConfig ossConfig = ossConfigMapper.findByOssType(ossType);
+        String endpoint = ossConfig.getEndpoint();
+        String ak = ossConfig.getAccessKeyId();
+        String sk = ossConfig.getAccessKeySecret();
+        this.ossClient = new OssClient(endpoint, ak, sk);
     }
 
     @Override
     public ServerInfo getUploadStore(String channelName) throws Exception {
-        int ossUser = storeConfigService.getLocalOssUser();
-        UploadChannel uploadChannel = storeRepository.getUploadChannel(ossUser, channelName);
-        int channelCode = uploadChannel.getChannelCode();
-        return consoleService.getUploadStore(channelCode);
+        /*int ossUser = storeConfigService.getLocalOssUser();
+        UploadChannel uploadChannel = storeRepository.getUploadChannel(ossUser, channelName);*/
+        int channelCode = 101;
+        return ossClient.getServerInfo();
     }
 
     @Override
@@ -64,7 +70,7 @@ public class StoreServiceWrapperRouter implements OssService {
     public void setObjectUpload(int channelCode, String objectId) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
         if (ossType == OssType.localOss.getCode()) {
-            storeServiceWrapper.setObjectUpload(channelCode, objectId, ossUser);
+            //storeServiceWrapper.setObjectUpload(channelCode, objectId, ossUser);
         } else if (ossType == OssType.aliyunOss.getCode()) {
         }
     }
@@ -73,7 +79,8 @@ public class StoreServiceWrapperRouter implements OssService {
     public void setObjectScope(int channelCode, String objectId, int scope) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
         if (ossType == OssType.localOss.getCode()) {
-            storeServiceWrapper.setObjectScope(channelCode, objectId, scope, ossUser);
+            //storeServiceWrapper.setObjectScope(channelCode, objectId, scope, ossUser);
+            ossClient.setObjectScope(objectId);
         } else if (ossType == OssType.aliyunOss.getCode()) {
         }
     }
@@ -82,7 +89,8 @@ public class StoreServiceWrapperRouter implements OssService {
     public void deleteByObjectId(int channelCode, String objectId) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
         if (ossType == OssType.localOss.getCode()) {
-            storeServiceWrapper.deleteByObjectId(channelCode, objectId, ossUser);
+            //storeServiceWrapper.deleteByObjectId(channelCode, objectId, ossUser);
+            ossClient.deleteObject(objectId);
         } else if (ossType == OssType.aliyunOss.getCode()) {
         }
     }
@@ -91,7 +99,7 @@ public class StoreServiceWrapperRouter implements OssService {
     public void deleteByObjectUrl(String objectUrl) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
         if (ossType == OssType.localOss.getCode()) {
-            storeServiceWrapper.deleteByObjectUrl(objectUrl, ossUser);
+            //storeServiceWrapper.deleteByObjectUrl(objectUrl, ossUser);
         } else if (ossType == OssType.aliyunOss.getCode()) {
         }
     }
@@ -100,7 +108,8 @@ public class StoreServiceWrapperRouter implements OssService {
     public ObjectInfo getObjectInfo(int channelCode, String objectId) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
         if (ossType == OssType.localOss.getCode()) {
-            return storeServiceWrapper.getObjectInfo(channelCode, objectId, ossUser);
+            //storeServiceWrapper.getObjectInfo(channelCode, objectId, ossUser);
+            return ossClient.getObjectInfo(objectId);
         } else if (ossType == OssType.aliyunOss.getCode()) {
         }
 
@@ -111,7 +120,8 @@ public class StoreServiceWrapperRouter implements OssService {
     public String getSignedUrl(int channelCode, String objectId) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
         if (ossType == OssType.localOss.getCode()) {
-            return storeServiceWrapper.getSignedUrl(channelCode, objectId, ossUser);
+            //return storeServiceWrapper.getSignedUrl(channelCode, objectId, ossUser);
+            return ossClient.getSignedUrl(objectId, ObjectAction.access.getName());
         } else if (ossType == OssType.aliyunOss.getCode()) {
         }
 
@@ -122,7 +132,7 @@ public class StoreServiceWrapperRouter implements OssService {
     public String getSignedUrlByUrl(int channelCode, String objectUrl) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
         if (ossType == OssType.localOss.getCode()) {
-            return storeServiceWrapper.getSignedUrlByUrl(channelCode, objectUrl, ossUser);
+            //return storeServiceWrapper.getSignedUrlByUrl(channelCode, objectUrl, ossUser);
         } else if (ossType == OssType.aliyunOss.getCode()) {
         }
 
@@ -132,14 +142,16 @@ public class StoreServiceWrapperRouter implements OssService {
     @Override
     public VideoInfo getVideoInfo(int channelCode, String videoFileId) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
-        return storeServiceWrapper.getVideoInfo(channelCode, videoFileId, ossUser);
+        //storeServiceWrapper.getVideoInfo(channelCode, videoFileId, ossUser);
+        return ossClient.getVideoInfo(videoFileId);
     }
 
     @Override
     public ImageInfo getImageInfo(int channelCode, String imageFileId) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
         if (ossType == OssType.localOss.getCode()) {
-            return storeServiceWrapper.getImageInfo(channelCode, imageFileId, ossUser);
+            //return storeServiceWrapper.getImageInfo(channelCode, imageFileId, ossUser);
+            return ossClient.getImageInfo(imageFileId);
         } else if (ossType == OssType.aliyunOss.getCode()) {
         }
 
@@ -150,7 +162,7 @@ public class StoreServiceWrapperRouter implements OssService {
     public ConvertedImageInfo getWebpInfo(int channelCode, String imageFileId) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
         if (ossType == OssType.localOss.getCode()) {
-            return storeServiceWrapper.getWebpInfo(channelCode, imageFileId, ossUser);
+            //return storeServiceWrapper.getWebpInfo(channelCode, imageFileId, ossUser);
         } else if (ossType == OssType.aliyunOss.getCode()) {
         }
         throw new Exception("OSSType not found");
@@ -160,7 +172,7 @@ public class StoreServiceWrapperRouter implements OssService {
     public AudioInfo getAudioInfo(int channelCode, String audioFileId) throws Exception {
         int ossUser = storeConfigService.getLocalOssUser();
         if (ossType == OssType.localOss.getCode()) {
-            return storeServiceWrapper.getAudioInfo(channelCode, audioFileId, ossUser);
+            //return storeServiceWrapper.getAudioInfo(channelCode, audioFileId, ossUser);
         } else if (ossType == OssType.aliyunOss.getCode()) {
         }
 

+ 1 - 1
file/file-service/src/main/java/cn/reghao/tnb/file/app/service/AvatarService.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.file.app.service;
 
 import cn.reghao.file.api.iface.OssService;
-import cn.reghao.tnb.oss.api.dto.media.ImageInfo;
+import cn.reghao.oss.api.dto.media.ImageInfo;
 import cn.reghao.tnb.account.api.iface.AccountQuery;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.file.app.model.dto.AvatarUpdate;

+ 1 - 1
file/file-service/src/main/java/cn/reghao/tnb/file/app/service/FileService.java

@@ -13,7 +13,7 @@ import cn.reghao.tnb.file.app.model.po.LocalFile;
 import cn.reghao.tnb.file.app.model.vo.FileQuery;
 import cn.reghao.tnb.file.app.model.vo.LocalFileInfo;
 import cn.reghao.tnb.file.app.model.vo.LocalFileUrl;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
+import cn.reghao.oss.api.constant.ObjectType;
 import jakarta.annotation.PostConstruct;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;

+ 0 - 100
file/file-service/src/main/java/cn/reghao/tnb/file/app/service/OssFileService.java

@@ -1,100 +0,0 @@
-package cn.reghao.tnb.file.app.service;
-
-import cn.reghao.jutil.jdk.converter.ByteConverter;
-import cn.reghao.jutil.jdk.converter.ByteType;
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.file.app.zoss.service.UserNodeService;
-import cn.reghao.tnb.oss.api.iface.StoreService;
-import cn.reghao.tnb.oss.api.constant.ObjectScope;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
-import cn.reghao.tnb.oss.api.dto.ObjectInfo;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreNode;
-import cn.reghao.tnb.file.app.zoss.model.po.UserNode;
-import cn.reghao.tnb.file.app.zoss.model.vo.FileInfo;
-import cn.reghao.tnb.file.app.zoss.rpc.RpcService;
-import org.apache.dubbo.rpc.RpcException;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2024-07-11 16:49:34
- */
-@Service
-public class OssFileService {
-    private final ByteConverter byteConverter = new ByteConverter();
-    private final UserNodeService userNodeService;
-    private final RpcService rpcService;
-
-    public OssFileService(UserNodeService userNodeService, RpcService rpcService) {
-        this.userNodeService = userNodeService;
-        this.rpcService = rpcService;
-    }
-
-    public PageList<FileInfo> getFileList(String nodeDomain, String objectName, int pn) {
-        try {
-            StoreNode storeNode = userNodeService.getStoreNodeByDomain(nodeDomain);
-            if (storeNode == null) {
-                return PageList.empty();
-            }
-
-            String host = storeNode.getNodeAddr();
-            int port = storeNode.getRpcPort();
-            StoreService storeService = rpcService.getStoreService(host, port);
-
-            long owner = UserContext.getUserId();
-            int pz = 10;
-            PageList<ObjectInfo> pageList = storeService.getByPrefix((int) owner, objectName, pn, pz);
-            List<FileInfo> list = pageList.getList().stream().map(this::getFileInfo).collect(Collectors.toList());
-            return PageList.pageList(pn, pz, (int) pageList.getTotalSize(), list);
-        } catch (Exception e) {
-            if (e instanceof RpcException) {
-                //throw new Exception("RPC 调用失败");
-            }
-
-            e.printStackTrace();
-        }
-
-        return PageList.empty();
-    }
-
-    private FileInfo getFileInfo(ObjectInfo objectInfo) {
-        String size = byteConverter.convert(ByteType.Bytes, objectInfo.getSize());
-        return new FileInfo(objectInfo, size);
-    }
-
-    public ObjectInfo getObjectInfo(int userNodeId, String objectId) throws Exception {
-        UserNode userNode = userNodeService.getUserNode(userNodeId);
-        String nodeDomain = userNode.getDomain();
-        StoreNode storeNode = userNodeService.getStoreNodeByDomain(nodeDomain);
-        if (storeNode == null) {
-            return null;
-        }
-
-        String host = storeNode.getNodeAddr();
-        int port = storeNode.getRpcPort();
-        StoreService storeService = rpcService.getStoreService(host, port);
-        ObjectInfo objectInfo = storeService.getObjectInfo(objectId);
-        if (objectInfo != null) {
-            if (objectInfo.getFileType() == ObjectType.Dir.getCode()) {
-                return objectInfo;
-            }
-
-            int scope = objectInfo.getScope();
-            if (scope == ObjectScope.PRIVATE.getCode()) {
-                long owner = UserContext.getUserId();
-                int expire = 3600;
-                String signedVideoUrl = storeService.getSignedUrl(nodeDomain, (int) owner, objectId, expire);
-                objectInfo.setUrl(signedVideoUrl);
-            } else {
-                String url = String.format("//%s/%s", nodeDomain, objectInfo.getUrl());
-                objectInfo.setUrl(url);
-            }
-        }
-
-        return objectInfo;
-    }
-}

+ 1 - 1
file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/model/po/DiskFile.java

@@ -2,7 +2,7 @@ package cn.reghao.tnb.file.app.zdisk.model.po;
 
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
+import cn.reghao.oss.api.constant.ObjectType;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.NoArgsConstructor;

+ 1 - 1
file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/model/vo/DiskFileDetail.java

@@ -1,6 +1,6 @@
 package cn.reghao.tnb.file.app.zdisk.model.vo;
 
-import cn.reghao.tnb.oss.api.dto.ObjectInfo;
+import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.tnb.file.app.zdisk.model.po.DiskFile;
 import lombok.Getter;
 import lombok.NoArgsConstructor;

+ 1 - 1
file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/model/vo/FileInfo.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.file.app.zdisk.model.vo;
 
 import cn.reghao.jutil.jdk.converter.DateTimeConverter;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
+import cn.reghao.oss.api.constant.ObjectType;
 import cn.reghao.tnb.file.app.zdisk.model.po.DiskFile;
 import lombok.AllArgsConstructor;
 import lombok.Getter;

+ 1 - 1
file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/CamRecordService.java

@@ -11,7 +11,7 @@ import cn.reghao.tnb.file.app.zdisk.model.constant.AlbumType;
 import cn.reghao.tnb.file.app.zdisk.model.query.CamDeviceQuery;
 import cn.reghao.tnb.file.app.zdisk.model.vo.CamRecordDetail;
 import cn.reghao.tnb.file.app.zdisk.model.vo.CamRecordInfo;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
+import cn.reghao.oss.api.dto.media.VideoInfo;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.file.app.zdisk.model.dto.CamRecordDto;
 import cn.reghao.tnb.file.app.zdisk.model.po.CamDevice;

+ 1 - 1
file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/DiskAlbumService.java

@@ -8,7 +8,7 @@ import cn.reghao.tnb.file.app.zdisk.model.constant.AlbumType;
 import cn.reghao.tnb.file.app.zdisk.model.vo.DiskAlbumDetail;
 import cn.reghao.tnb.file.app.zdisk.model.vo.DiskAlbumInfo;
 import cn.reghao.tnb.file.app.zdisk.model.vo.DiskFileDetail;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
+import cn.reghao.oss.api.constant.ObjectType;
 import cn.reghao.tnb.account.api.dto.AccountAvatar;
 import cn.reghao.tnb.account.api.iface.AccountQuery;
 import cn.reghao.tnb.common.auth.UserContext;

+ 2 - 2
file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/DiskFileService.java

@@ -11,8 +11,8 @@ import cn.reghao.tnb.file.app.zdisk.model.vo.DiskFileCount;
 import cn.reghao.tnb.file.app.zdisk.model.vo.DiskFileDetail;
 import cn.reghao.tnb.file.app.zdisk.model.vo.FileInfo;
 import cn.reghao.tnb.file.app.zdisk.model.vo.NamePath;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
-import cn.reghao.tnb.oss.api.dto.ObjectInfo;
+import cn.reghao.oss.api.constant.ObjectType;
+import cn.reghao.oss.api.dto.ObjectInfo;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.common.util.StringUtil;
 import cn.reghao.tnb.file.app.zdisk.db.mapper.DiskFileMapper;

+ 1 - 1
file/file-service/src/main/java/cn/reghao/tnb/file/app/zdisk/service/DiskFolderService.java

@@ -2,7 +2,7 @@ package cn.reghao.tnb.file.app.zdisk.service;
 
 import cn.reghao.jutil.jdk.web.db.Page;
 import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
+import cn.reghao.oss.api.constant.ObjectType;
 import cn.reghao.tnb.common.auth.UserContext;
 import cn.reghao.tnb.file.app.zdisk.db.mapper.DiskFileMapper;
 import cn.reghao.tnb.file.app.zdisk.model.dto.CreateFolder;

+ 0 - 146
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/OssSdkController.java

@@ -1,146 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.controller;
-
-import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.oss.api.iface.ConsoleService;
-import cn.reghao.tnb.oss.api.dto.ObjectInfo;
-import cn.reghao.tnb.oss.api.dto.ServerInfo;
-import cn.reghao.tnb.oss.api.dto.media.AudioInfo;
-import cn.reghao.tnb.oss.api.dto.media.ConvertedImageInfo;
-import cn.reghao.tnb.oss.api.dto.media.ImageInfo;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.file.app.zoss.model.dto.KeyAuthDto;
-import cn.reghao.tnb.file.app.zoss.rpc.StoreServiceWrapper;
-import cn.reghao.tnb.file.app.zoss.service.UserKeyService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2024-02-23 09:05:58
- */
-@Tag(name = "oss-sdk 接口")
-@RestController
-@RequestMapping("/api/oss/sdk")
-public class OssSdkController {
-    private final UserKeyService userKeyService;
-    private final ConsoleService consoleService;
-    private final StoreServiceWrapper storeServiceWrapper;
-
-    public OssSdkController(UserKeyService userKeyService, ConsoleService consoleService, 
-                            StoreServiceWrapper storeServiceWrapper) {
-        this.userKeyService = userKeyService;
-        this.consoleService = consoleService;
-        this.storeServiceWrapper = storeServiceWrapper;
-    }
-
-    @Operation(summary = "对 oss key 进行认证", description = "N")
-    @PostMapping(value = "/key/auth", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String authKey(@Validated KeyAuthDto keyAuthDto) {
-        Result result = userKeyService.auth(keyAuthDto);
-        if (result.getCode() == 0) {
-            return WebResult.success(result.getData());
-        }
-
-        return WebResult.result(result);
-    }
-
-    @Operation(summary = "获取上传文件存储的 oss-store 节点", description = "N")
-    @GetMapping(value = "/upload/store", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getUploadStore(@RequestParam("channelCode") int channelCode) {
-        ServerInfo serverInfo = consoleService.getUploadStore(channelCode);
-        return WebResult.success(serverInfo);
-    }
-
-    @Operation(summary = "设置对象可见范围", description = "N")
-    @PostMapping(value = "/object/scope", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String setObjectScope(int channelCode, String objectId, int scope) throws Exception {
-        int loginUser = (int) UserContext.getUserId();
-        storeServiceWrapper.setObjectScope(channelCode, objectId, scope, loginUser);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "根据 objectId 删除对象", description = "N")
-    @PostMapping(value = "/object/delete/id", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteByObjectId(@RequestParam("channelCode") int channelCode,
-                                   @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = (int) UserContext.getUserId();
-        storeServiceWrapper.deleteByObjectId(channelCode, objectId, loginUser);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "根据 objectUrl 删除对象", description = "N")
-    @PostMapping(value = "/object/delete/url", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteByObjectUrl(@RequestParam("objectUrl") String objectUrl) {
-        int loginUser = (int) UserContext.getUserId();
-        storeServiceWrapper.deleteByObjectUrl(objectUrl, loginUser);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "获取对象信息", description = "N")
-    @GetMapping(value = "/object/info", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getObjectInfo(@RequestParam("channelCode") int channelCode,
-                                @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = (int) UserContext.getUserId();
-        ObjectInfo objectInfo = storeServiceWrapper.getObjectInfo(channelCode, objectId, loginUser);
-        return WebResult.success(objectInfo);
-    }
-
-    @Operation(summary = "获取对象签名 url", description = "N")
-    @GetMapping(value = "/object/url", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getSignedUrl(@RequestParam("channelCode") Integer channelCode,
-                               @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = (int) UserContext.getUserId();
-        String signedUrl  = storeServiceWrapper.getSignedUrl(channelCode, objectId, loginUser);
-        return WebResult.success(signedUrl);
-    }
-
-    @Operation(summary = "根据对象 url 获取签名 url", description = "N")
-    @GetMapping(value = "/object/signed_url", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getSignedUrlByUrl(@RequestParam("channelCode") Integer channelCode,
-                                    @RequestParam("objectUrl") String objectUrl) throws Exception {
-        int loginUser = (int) UserContext.getUserId();
-        String signedUrl  = storeServiceWrapper.getSignedUrlByUrl(channelCode, objectUrl, loginUser);
-        return WebResult.success(signedUrl);
-    }
-
-    @Operation(summary = "获取视频文件信息", description = "N")
-    @GetMapping(value = "/object/video/info", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getVideoInfo(@RequestParam("channelCode") Integer channelCode,
-                               @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = (int) UserContext.getUserId();
-        VideoInfo videoInfo = storeServiceWrapper.getVideoInfo(channelCode, objectId, loginUser);
-        return WebResult.success(videoInfo);
-    }
-
-    @Operation(summary = "获取图片文件信息", description = "N")
-    @GetMapping(value = "/object/image/info", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getImagesInfo(@RequestParam("channelCode") Integer channelCode,
-                                @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = (int) UserContext.getUserId();
-        ImageInfo imageInfo = storeServiceWrapper.getImageInfo(channelCode, objectId, loginUser);
-        return WebResult.success(imageInfo);
-    }
-
-    @Operation(summary = "获取 webp 图片文件信息", description = "N")
-    @PostMapping(value = "/object/image/webp", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getWebpInfo(@RequestParam("channelCode") Integer channelCode,
-                              @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = (int) UserContext.getUserId();
-        ConvertedImageInfo convertedImageInfo = storeServiceWrapper.getWebpInfo(channelCode, objectId, loginUser);
-        return WebResult.success(convertedImageInfo);
-    }
-
-    @Operation(summary = "获取音频文件信息", description = "N")
-    @GetMapping(value = "/media/audio/info", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getAudioInfo(@RequestParam("channelCode") Integer channelCode,
-                               @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = (int) UserContext.getUserId();
-        AudioInfo audioInfo = storeServiceWrapper.getAudioInfo(channelCode, objectId, loginUser);
-        return WebResult.success(audioInfo);
-    }
-}

+ 0 - 64
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/StoreNodeController.java

@@ -1,64 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.controller;
-
-import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.common.db.SelectOption;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreVolume;
-import cn.reghao.tnb.file.app.zoss.model.vo.StoreNodeInfo;
-import cn.reghao.tnb.file.app.zoss.service.StoreNodeService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-23 11:29:14
- */
-@Tag(name = "存储节点接口")
-@RestController
-@RequestMapping("/api/oss/store")
-public class StoreNodeController {
-    private final StoreNodeService storeNodeService;
-
-    public StoreNodeController(StoreNodeService storeNodeService) {
-        this.storeNodeService = storeNodeService;
-    }
-
-    @Operation(summary = "存储节点列表", description = "N")
-    @GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String storeNodePage() {
-        List<StoreNodeInfo> list = storeNodeService.getByPage();
-        return WebResult.success(list);
-    }
-
-    @Operation(summary = "存储节点磁盘列表", description = "N")
-    @GetMapping(value = "/disk", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String storeNodePage(@RequestParam("storeNodeId") Integer storeNodeId) {
-        List<StoreVolume> list = storeNodeService.getStoreDisks(storeNodeId);
-        return WebResult.success(list);
-    }
-
-    @Operation(summary = "存储节点 kv 列表", description = "N")
-    @GetMapping(value = "/kv", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String storeNodeKeyValue() {
-        List<SelectOption> storeNodes = storeNodeService.getNodeKeyValues();
-        return WebResult.success(storeNodes);
-    }
-
-    @Operation(summary = "设置存储节点的状态", description = "N")
-    @PostMapping(value = "/update_status/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String updateStoreNodeStatus(@PathVariable("id") Integer storeNodeId) {
-        Result result = storeNodeService.updateStatus(storeNodeId);
-        return WebResult.result(result);
-    }
-
-    @Operation(summary = "删除存储节点", description = "N")
-    @PostMapping(value = "/delete/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteStoreNode(@PathVariable("id") Integer storeNodeId) {
-        Result result = storeNodeService.delete(storeNodeId);
-        return WebResult.result(result);
-    }
-}

+ 0 - 97
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/StoreObjectController.java

@@ -1,97 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.controller;
-
-import cn.reghao.file.api.iface.FileService;
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.oss.api.iface.ConsoleService;
-import cn.reghao.tnb.oss.api.dto.ObjectInfo;
-import cn.reghao.tnb.oss.api.dto.ServerInfo;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.file.app.zoss.model.po.UserNode;
-import cn.reghao.tnb.file.app.zoss.model.vo.FileInfo;
-import cn.reghao.tnb.file.app.service.OssFileService;
-import cn.reghao.tnb.file.app.zoss.service.UploadChannelService;
-import cn.reghao.tnb.file.app.zoss.service.UserNodeService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-27 09:12:14
- */
-@Tag(name = "存储对象接口")
-@RestController
-@RequestMapping("/api/oss/object")
-public class StoreObjectController {
-    private final ConsoleService consoleService;
-    private final OssFileService ossFileService;
-    private final UserNodeService userNodeService;
-    private final UploadChannelService uploadChannelService;
-    private final FileService fileService;
-
-    public StoreObjectController(ConsoleService consoleService, OssFileService ossFileService,
-                                 UserNodeService userNodeService, UploadChannelService uploadChannelService,
-                                 FileService fileService) {
-        this.consoleService = consoleService;
-        this.ossFileService = ossFileService;
-        this.userNodeService = userNodeService;
-        this.uploadChannelService = uploadChannelService;
-        this.fileService = fileService;
-    }
-
-    @Operation(summary = "对象列表页面", description = "N")
-    @GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String index(@RequestParam(value = "userNodeId", required = false) Integer userNodeId,
-                        @RequestParam(value = "path", required = false) String path) {
-        if (path == null || path.isBlank()) {
-            path = "/";
-        }
-
-        int loginUser = (int) UserContext.getUserId();
-        List<UserNode> userNodes = userNodeService.getUserNodes(loginUser);
-        if (userNodes.isEmpty()) {
-            String errMsg = "没有可用节点";
-            WebResult.failWithMsg(errMsg);
-        }
-
-        UserNode userNode;
-        if (userNodeId != null) {
-            userNode = userNodeService.getUserNode(userNodeId);
-        } else {
-            userNode = userNodes.get(0);
-            userNodeId = userNode.getId();
-        }
-        String nodeDomain = userNode.getDomain();
-
-        int pn = 1;
-        int ps = 10;
-        String objectName = "fileService.getObjectName(path)";
-        PageList<FileInfo> pageList = ossFileService.getFileList(nodeDomain, objectName, pn);
-        /*model.addAttribute("parentDirs", Collections.emptyList());
-        model.addAttribute("page", pageList);
-        model.addAttribute("userNodeId", userNodeId);
-        model.addAttribute("storeNodes", userNodes);
-        model.addAttribute("uploadPage", "/admin/oss/object/upload");
-        model.addAttribute("showTitle", 1);*/
-        return WebResult.success(pageList);
-    }
-
-    @Operation(summary = "对象详情页面", description = "N")
-    @GetMapping(value = "/detail", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String objectInfoPage(@RequestParam(value = "userNodeId") Integer userNodeId,
-                                 @RequestParam(value = "objectId") String objectId) throws Exception {
-        ObjectInfo objectInfo = ossFileService.getObjectInfo(userNodeId, objectId);
-        return WebResult.success(objectInfo);
-    }
-
-    @Operation(summary = "获取对象上传需要的 token", description = "N")
-    @PostMapping(value = "/serverinfo", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String uploadFile(Integer channelCode) {
-        ServerInfo serverInfo = consoleService.getUploadStore(channelCode);
-        return WebResult.success(serverInfo);
-    }
-}

+ 0 - 110
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/UploadChannelController.java

@@ -1,110 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.controller;
-
-import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.oss.api.constant.ObjectSize;
-import cn.reghao.tnb.oss.api.constant.ObjectScope;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.file.app.zoss.model.dto.UploadChannelDto;
-import cn.reghao.tnb.common.db.SelectOption;
-import cn.reghao.tnb.file.app.zoss.model.po.UploadChannel;
-import cn.reghao.tnb.file.app.zoss.model.po.UserNode;
-import cn.reghao.tnb.file.app.zoss.model.vo.AddChannelAttr;
-import cn.reghao.tnb.file.app.zoss.service.UploadChannelService;
-import cn.reghao.tnb.file.app.zoss.service.UserNodeService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2024-02-23 15:05:30
- */
-@Slf4j
-@Tag(name = "上传通道接口")
-@RestController
-@RequestMapping("/api/oss/channel")
-public class UploadChannelController {
-    private final UserNodeService userNodeService;
-    private final UploadChannelService uploadChannelService;
-
-    public UploadChannelController(UserNodeService userNodeService, UploadChannelService uploadChannelService) {
-        this.userNodeService = userNodeService;
-        this.uploadChannelService = uploadChannelService;
-    }
-
-    @Operation(summary = "上传通道列表页面", description = "N")
-    @GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String index(@RequestParam("userNodeId") Integer userNodeId) {
-        int loginUser = (int) UserContext.getUserId();
-        List<UserNode> userNodes = userNodeService.getUserNodes(loginUser);
-        if (userNodes.isEmpty()) {
-            String errMsg = "没有可用节点";
-            WebResult.failWithMsg(errMsg);
-        }
-
-        List<UploadChannel> list = uploadChannelService.getChannelsByUserNode(userNodeId);
-        return WebResult.success(list);
-    }
-
-    @Operation(summary = "上传通道属性", description = "N")
-    @GetMapping(value = "/attr", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String addChannelPage() {
-        List<SelectOption> objectTypes = new ArrayList<>();
-        for (ObjectType objectType : ObjectType.values()) {
-            if (objectType.getCode() == ObjectType.Dir.getCode()) {
-                continue;
-            }
-            objectTypes.add(new SelectOption(objectType.name(), objectType.getCode()+""));
-        }
-
-        List<SelectOption> objectScopes = new ArrayList<>();
-        for (ObjectScope objectScope : ObjectScope.values()) {
-            objectScopes.add(new SelectOption(objectScope.name(), objectScope.getCode()+""));
-        }
-
-        List<SelectOption> sizeList = Arrays.stream(ObjectSize.values())
-                .map(objectSize -> new SelectOption(objectSize.getDesc(), objectSize.getSize()+""))
-                .collect(Collectors.toList());
-
-        AddChannelAttr addChannelAttr = new AddChannelAttr(objectTypes, objectScopes, sizeList);
-        return WebResult.success(addChannelAttr);
-    }
-
-    @Operation(summary = "初始化上传通道", description = "N")
-    @PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String initUploadChannel() throws Exception {
-        uploadChannelService.initUploadChannel();
-        return WebResult.success();
-    }
-
-    @Operation(summary = "添加上传通道", description = "N")
-    @PostMapping(value = "/add", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String addUploadChannel(@RequestBody @Validated UploadChannelDto uploadChannelDto) throws Exception {
-        Result result = uploadChannelService.addObjectChannel(uploadChannelDto);
-        return WebResult.result(result);
-    }
-
-    @Operation(summary = "设置通道状态", description = "N")
-    @PostMapping(value = "/channel_status/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String setChannelStatus(@PathVariable("id") Integer id) {
-        uploadChannelService.updateChannelStatus(id);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "删除通道", description = "N")
-    @PostMapping(value = "/delete/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteUploadChannel(@PathVariable("id") Integer id) throws Exception {
-        Result result = uploadChannelService.deleteChannel(id);
-        return WebResult.result(result);
-    }
-}

+ 0 - 45
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/UserKeyController.java

@@ -1,45 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.controller;
-
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.file.app.zoss.model.po.UserKey;
-import cn.reghao.tnb.file.app.service.StoreConfigService;
-import cn.reghao.tnb.file.app.zoss.service.UserKeyService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-27 10:24:31
- */
-@Tag(name = "oss key 接口")
-@RestController
-@RequestMapping("/api/oss/key")
-public class UserKeyController {
-    private final UserKeyService userKeyService;
-    private final StoreConfigService storeConfigService;
-
-    public UserKeyController(UserKeyService userKeyService, StoreConfigService storeConfigService) {
-        this.userKeyService = userKeyService;
-        this.storeConfigService = storeConfigService;
-    }
-
-    @Operation(summary = "oss key 页面", description = "N")
-    @GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String userKeyPage() {
-        int ossUser = storeConfigService.getLocalOssUser();
-        List<UserKey> list = userKeyService.getUserKeys(ossUser);
-        return WebResult.success(list);
-    }
-
-    @Operation(summary = "重新生成  oss key", description = "N")
-    @PostMapping(value = "/regenerate", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String regenerate() {
-        int ossUser = storeConfigService.getLocalOssUser();
-        userKeyService.regenerate(ossUser);
-        return WebResult.success();
-    }
-}

+ 0 - 69
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/controller/UserNodeController.java

@@ -1,69 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.controller;
-
-import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.file.app.zoss.model.dto.NodeAddDto;
-import cn.reghao.tnb.common.db.SelectOption;
-import cn.reghao.tnb.file.app.zoss.model.dto.NodeUpdateDto;
-import cn.reghao.tnb.file.app.zoss.model.po.UserNode;
-import cn.reghao.tnb.file.app.zoss.service.UserNodeService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2019-08-30 18:49:15
- */
-@Tag(name = "用户节点接口")
-@RestController
-@RequestMapping("/api/oss/my")
-public class UserNodeController {
-    private final UserNodeService userNodeService;
-
-    public UserNodeController(UserNodeService userNodeService) {
-        this.userNodeService = userNodeService;
-    }
-
-    @Operation(summary = "用户节点列表", description = "N")
-    @GetMapping(value = "/list", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String userNodesPage() {
-        int loginUser = (int) UserContext.getUserId();
-        List<UserNode> list = userNodeService.getUserNodes(loginUser);
-        return WebResult.success(list);
-    }
-
-    @Operation(summary = "用户节点 kv 列表", description = "N")
-    @GetMapping(value = "/kv", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String userNodeKeyValue() {
-        long loginUser = UserContext.getUserId();
-        List<SelectOption> storeNodes = userNodeService.getNodeKeyValues(loginUser);
-        return WebResult.success(storeNodes);
-    }
-
-    @Operation(summary = "添加用户节点", description = "N")
-    @PostMapping(value = "/add", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String addUserNode(@RequestBody @Validated NodeAddDto nodeAddDto) {
-        Result result = userNodeService.add(nodeAddDto);
-        return WebResult.result(result);
-    }
-
-    @Operation(summary = "更新用户节点", description = "N")
-    @PostMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String updateNode(@RequestBody @Validated NodeUpdateDto nodeUpdateDto) {
-        userNodeService.updateUserNode(nodeUpdateDto);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "删除用户节点", description = "N")
-    @PostMapping(value = "/delete/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteUserNode(@PathVariable("id") Integer userNodeId) {
-        Result result = userNodeService.delete(userNodeId);
-        return WebResult.result(result);
-    }
-}

+ 0 - 17
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/mapper/StoreNodeMapper.java

@@ -1,17 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.db.mapper;
-
-import cn.reghao.jutil.jdk.web.db.BaseMapper;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreNode;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-/**
- * @author reghao
- * @date 2025-10-16 14:12:42
- */
-@Mapper
-public interface StoreNodeMapper extends BaseMapper<StoreNode> {
-    StoreNode findByNodeAddrAndHttpPort(@Param("nodeAddr") String nodeAddr, @Param("httpPort") int httpPort);
-    StoreNode findById(int id);
-    StoreNode findFirstStore();
-}

+ 0 - 16
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/mapper/StoreVolumeMapper.java

@@ -1,16 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.db.mapper;
-
-import cn.reghao.jutil.jdk.web.db.BaseMapper;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreVolume;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2025-10-16 16:22:12
- */
-@Mapper
-public interface StoreVolumeMapper extends BaseMapper<StoreVolume> {
-    List<StoreVolume> findByStoreNodeId(int storeNodeId);
-}

+ 0 - 25
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/mapper/UploadChannelMapper.java

@@ -1,25 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.db.mapper;
-
-import cn.reghao.jutil.jdk.web.db.BaseMapper;
-import cn.reghao.tnb.file.app.zoss.model.po.UploadChannel;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2025-10-16 14:13:04
- */
-@Mapper
-public interface UploadChannelMapper extends BaseMapper<UploadChannel> {
-    void deleteById(int id);
-
-    int countByCreateBy(long createBy);
-    List<UploadChannel> findByCreateBy(long createBy);
-    UploadChannel findById(int id);
-    List<UploadChannel> findByCreateByAndUserNodeId(@Param("createBy") long createBy, @Param("userNodeId") int userNodeId);
-    UploadChannel findByCreateByAndChannelCode(@Param("createBy") long createBy, @Param("channelCode") int channelCode);
-    UploadChannel findByCreateByAndPrefix(@Param("createBy") long createBy, @Param("prefix") String prefix);
-    UploadChannel findByCreateByAndName(@Param("createBy") long createBy, @Param("name") String name);
-}

+ 0 - 17
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/mapper/UserKeyMapper.java

@@ -1,17 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.db.mapper;
-
-import cn.reghao.jutil.jdk.web.db.BaseMapper;
-import cn.reghao.tnb.file.app.zoss.model.po.UserKey;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @author reghao
- * @date 2025-10-16 14:13:12
- */
-@Mapper
-public interface UserKeyMapper extends BaseMapper<UserKey> {
-    void updateByCreateBy(UserKey userKey);
-
-    UserKey findByCreateBy(long createBy);
-    UserKey findByAccessKeyId(String  accessKeyId);
-}

+ 0 - 28
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/mapper/UserNodeMapper.java

@@ -1,28 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.db.mapper;
-
-import cn.reghao.jutil.jdk.web.db.BaseMapper;
-import cn.reghao.tnb.file.app.zoss.model.dto.NodeUpdateDto;
-import cn.reghao.tnb.file.app.zoss.model.po.UserNode;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2025-10-16 14:13:20
- */
-@Mapper
-public interface UserNodeMapper extends BaseMapper<UserNode> {
-    /*void updateUserNode(@Param("userNodeId") int userNodeId,
-                        @Param("domain") int domain,
-                        @Param("referer") int referer,
-                        @Param("secretKey") int secretKey);*/
-    void updateUserNode(NodeUpdateDto nodeUpdateDto);
-
-    int countByStoreNodeId(int storeNodeId);
-    UserNode findByCreateByAndStoreNodeId(@Param("createBy") long createBy, @Param("storeNodeId") int storeNodeId);
-    List<UserNode> findByCreateBy(long createBy);
-    UserNode findByDomain(String domain);
-    UserNode findById(int id);
-}

+ 0 - 37
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/repository/ChannelRepository.java

@@ -1,37 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.db.repository;
-
-import cn.reghao.tnb.file.app.zoss.db.mapper.UploadChannelMapper;
-import cn.reghao.tnb.file.app.zoss.model.po.UploadChannel;
-import cn.reghao.tnb.file.app.zoss.rpc.StoreServiceWrapper;
-import cn.reghao.tnb.file.app.service.StoreConfigService;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * @author reghao
- * @date 2025-10-19 22:07:47
- */
-@Repository
-public class ChannelRepository {
-    private final UploadChannelMapper uploadChannelMapper;
-    private final StoreConfigService storeConfigService;
-    private final StoreServiceWrapper storeServiceWrapper;
-
-    public ChannelRepository(UploadChannelMapper uploadChannelMapper, StoreConfigService storeConfigService,
-                             StoreServiceWrapper storeServiceWrapper) {
-        this.uploadChannelMapper = uploadChannelMapper;
-        this.storeConfigService = storeConfigService;
-        this.storeServiceWrapper = storeServiceWrapper;
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    public void createUploadChannel(UploadChannel uploadChannel) throws Exception {
-        uploadChannelMapper.save(uploadChannel);
-
-        int userNodeId = uploadChannel.getUserNodeId();
-        String prefix = uploadChannel.getPrefix();
-        int scope = uploadChannel.getScope();
-        int ossUser = storeConfigService.getLocalOssUser();
-        storeServiceWrapper.createChannel(userNodeId, prefix, scope, ossUser);
-    }
-}

+ 0 - 56
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/db/repository/StoreRepository.java

@@ -1,56 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.db.repository;
-
-import cn.reghao.tnb.oss.api.dto.StoreNodeDto;
-import cn.reghao.tnb.file.app.zoss.db.mapper.StoreNodeMapper;
-import cn.reghao.tnb.file.app.zoss.db.mapper.StoreVolumeMapper;
-import cn.reghao.tnb.file.app.zoss.db.mapper.UploadChannelMapper;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreNode;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreVolume;
-import cn.reghao.tnb.file.app.zoss.model.po.UploadChannel;
-import cn.reghao.tnb.file.app.service.StoreConfigService;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2025-10-17 09:14:47
- */
-@Repository
-public class StoreRepository {
-    private final StoreNodeMapper storeNodeMapper;
-    private final StoreVolumeMapper storeVolumeMapper;
-    private final UploadChannelMapper uploadChannelMapper;
-    private final StoreConfigService storeConfigService;
-
-    public StoreRepository(StoreNodeMapper storeNodeMapper, StoreVolumeMapper storeVolumeMapper,
-                           UploadChannelMapper uploadChannelMapper, StoreConfigService storeConfigService) {
-        this.storeNodeMapper = storeNodeMapper;
-        this.storeVolumeMapper = storeVolumeMapper;
-        this.uploadChannelMapper = uploadChannelMapper;
-        this.storeConfigService = storeConfigService;
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    public int saveStoreNode(StoreNodeDto storeNodeDto) {
-        StoreNode storeNode = new StoreNode(storeNodeDto);
-        storeNodeMapper.save(storeNode);
-
-        int storeNodeId = storeNode.getId();
-        List<StoreVolume> storeVolumes = storeNodeDto.getDiskVolumes().stream()
-                .map(diskVolume -> new StoreVolume(storeNodeId, diskVolume))
-                .collect(Collectors.toList());
-        if (!storeVolumes.isEmpty()) {
-            storeVolumeMapper.saveAll(storeVolumes);
-        }
-        return storeNode.getId();
-    }
-
-    @Cacheable(cacheNames = "tnb:file:channel", key = "#ossUser + '_' + #channelName", unless = "#result == null")
-    public UploadChannel getUploadChannel(int ossUser, String channelName) {
-        return uploadChannelMapper.findByCreateByAndName(ossUser, channelName);
-    }
-}

+ 0 - 22
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/dto/KeyAuthDto.java

@@ -1,22 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.Size;
-
-/**
- * @author reghao
- * @date 2024-02-27 11:21:07
- */
-@Setter
-@Getter
-public class KeyAuthDto {
-    @NotBlank
-    @Size(min = 8, max = 8, message = "accessKeyId 长度应为 8 个字符")
-    private String accessKeyId;
-    @NotBlank
-    @Size(min = 20, max = 20, message = "accessKeySecret 长度应为 20 字符")
-    private String accessKeySecret;
-}

+ 0 - 26
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/dto/NodeAddDto.java

@@ -1,26 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.dto;
-
-import jakarta.validation.constraints.NotBlank;
-import lombok.Getter;
-import lombok.Setter;
-
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Pattern;
-import jakarta.validation.constraints.Size;
-
-/**
- * @author reghao
- * @date 2024-02-27 09:42:44
- */
-@Setter
-@Getter
-public class NodeAddDto {
-    @NotNull
-    private Integer storeNodeId;
-    @Pattern(regexp = "^[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}$", message = "域名格式不正确")
-    @Size(max = 128, message = "域名长度应小于 128 个字符")
-    private String domain;
-    @NotBlank
-    @Size(max = 5, message = "协议应该是 http 或 https")
-    private String protocol;
-}

+ 0 - 28
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/dto/NodeUpdateDto.java

@@ -1,28 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.dto;
-
-import jakarta.validation.constraints.NotBlank;
-import lombok.Getter;
-import lombok.Setter;
-
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Pattern;
-import jakarta.validation.constraints.Size;
-
-/**
- * @author reghao
- * @date 2025-10-20 16:42:44
- */
-@Setter
-@Getter
-public class NodeUpdateDto {
-    @NotNull
-    private Integer userNodeId;
-    @Pattern(regexp = "^[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}$", message = "域名格式不正确")
-    @Size(max = 128, message = "域名长度应小于 128 个字符")
-    private String domain;
-    @NotBlank
-    @Size(max = 5, message = "协议应该是 http 或 https")
-    private String protocol;
-    private String referer;
-    private String secretKey;
-}

+ 0 - 35
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/dto/UploadChannelDto.java

@@ -1,35 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.dto;
-
-import cn.reghao.jutil.jdk.web.validator.ValidEnum;
-import cn.reghao.tnb.oss.api.constant.ObjectSize;
-import cn.reghao.tnb.oss.api.constant.ObjectScope;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
-import lombok.Getter;
-import lombok.Setter;
-
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Pattern;
-import jakarta.validation.constraints.Size;
-
-/**
- * @author reghao
- * @date 2021-06-03 16:15:23
- */
-@Setter
-@Getter
-public class UploadChannelDto {
-    @Pattern(regexp = "([^\\\\:*<>|\"?\\r\\n\\s/]+/)*([^\\\\:*<>|\"?\\r\\n\\s/]+)/$", message = "通道前缀不匹配")
-    @Size(min = 2, max = 128, message = "通道前缀长度应在 2 ~ 128 个字符之间")
-    private String channelPrefix;
-    @NotNull
-    @Size(min = 2, max = 128, message = "通道名长度应在 2 ~ 128 个字符之间")
-    private String channelName;
-    @ValidEnum(value = ObjectSize.class, message = "通道允许上传的文件大小不合法")
-    private Long maxSize;
-    @ValidEnum(value = ObjectType.class, message = "通道允许上传的文件类型不合法")
-    private Integer objectType;
-    @ValidEnum(value = ObjectScope.class, message = "通道作用域不合法")
-    private Integer scope;
-    @NotNull
-    private Integer userNodeId;
-}

+ 0 - 37
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/po/StoreNode.java

@@ -1,37 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.po;
-
-import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.tnb.oss.api.dto.StoreNodeDto;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Pattern;
-
-/**
- * @author reghao
- * @date 2024-02-23 11:29:14
- */
-@NoArgsConstructor
-@Getter
-@Setter
-public class StoreNode extends BaseObject<Integer> {
-    @NotBlank
-    @Pattern(regexp = "^((2((5[0-5])|([0-4]\\d)))|([0-1]?\\d{1,2}))(\\.((2((5[0-5])|([0-4]\\d)))|([0-1]?\\d{1,2}))){3}$", message = "节点地址格式不正确")
-    private String nodeAddr;
-    @NotNull
-    private Integer httpPort;
-    @NotNull
-    private Integer rpcPort;
-    @NotNull
-    private Boolean enabled;
-
-    public StoreNode(StoreNodeDto storeNodeDto) {
-        this.nodeAddr = storeNodeDto.getNodeAddr();
-        this.httpPort = storeNodeDto.getHttpPort();
-        this.rpcPort = storeNodeDto.getRpcPort();
-        this.enabled = false;
-    }
-}

+ 0 - 63
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/po/StoreVolume.java

@@ -1,63 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.po;
-
-import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.tnb.oss.api.dto.disk.DiskVolume;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-
-/**
- * @author reghao
- * @date 2024-03-04 17:08:20
- */
-@NoArgsConstructor
-@AllArgsConstructor
-@Setter
-@Getter
-public class StoreVolume extends BaseObject<Integer> {
-    @NotBlank
-    private String storeDir;
-    @NotNull
-    private Integer storeNodeId;
-    @NotBlank
-    private String name;
-    @NotBlank
-    private String volume;
-    @NotBlank
-    private String mountPoint;
-    @NotBlank
-    private String fsType;
-    @NotBlank
-    private String blockId;
-    @NotNull
-    private Long totalSpace;
-    @NotNull
-    private Long availSpace;
-    @NotNull
-    private Long totalInode;
-    @NotNull
-    private Long availInode;
-
-    private String usedSpaceStr;
-    private double percentSpace;
-    private long usedInode;
-    private double percentInode;
-
-    public StoreVolume(int storeNodeId, DiskVolume diskVolume) {
-        this.storeDir = diskVolume.getStoreDir();
-        this.storeNodeId = storeNodeId;
-        this.name = diskVolume.getName();
-        this.volume = diskVolume.getVolume();
-        this.mountPoint = diskVolume.getMountPoint();
-        this.fsType = diskVolume.getFsType();
-        this.blockId = diskVolume.getBlockId();
-        this.totalSpace = diskVolume.getTotalSpace();
-        this.availSpace = diskVolume.getAvailSpace();
-        this.totalInode = diskVolume.getTotalInode();
-        this.availInode = diskVolume.getAvailInode();
-    }
-}

+ 0 - 75
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/po/UploadChannel.java

@@ -1,75 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.po;
-
-import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.file.api.constant.UploadChannelType;
-import cn.reghao.tnb.file.app.zoss.model.dto.UploadChannelDto;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-
-/**
- * @author reghao
- * @date 2024-02-23 15:05:30
- */
-@NoArgsConstructor
-@Getter
-@Setter
-public class UploadChannel extends BaseObject<Integer> {
-    @NotNull
-    private Integer userNodeId;
-    @NotNull
-    private Integer channelCode;
-    @NotBlank
-    private String name;
-    @NotBlank
-    private String prefix;
-    @NotNull
-    private Long maxSize;
-    @NotNull
-    private Integer fileType;
-    @NotNull
-    private Integer scope;
-    @NotNull
-    private Boolean setUrl;
-    @NotNull
-    private Boolean setCallback;
-    @NotNull
-    private Boolean enabled;
-    @NotNull
-    private Integer createBy;
-
-    private String maxSizeStr;
-    private String fileTypeStr;
-    private String scopeStr;
-
-    public UploadChannel(int channelCode, UploadChannelDto uploadChannelDto, int ossUser) {
-        this.userNodeId = uploadChannelDto.getUserNodeId();
-        this.channelCode = channelCode;
-        this.name = uploadChannelDto.getChannelName();
-        this.prefix = uploadChannelDto.getChannelPrefix();
-        this.maxSize = uploadChannelDto.getMaxSize();
-        this.fileType = uploadChannelDto.getObjectType();
-        this.scope = uploadChannelDto.getScope();
-        this.setUrl = false;
-        this.setCallback = false;
-        this.enabled = true;
-        this.createBy = ossUser;
-    }
-
-    public UploadChannel(int userNodeId, UploadChannelType uploadChannelType, int ossUser) {
-        this.userNodeId = userNodeId;
-        this.channelCode = uploadChannelType.getChannelCode();
-        this.name = uploadChannelType.name();
-        this.prefix = uploadChannelType.getChannelPrefix();
-        this.maxSize = uploadChannelType.getMaxSize();
-        this.fileType = uploadChannelType.getFileType();
-        this.scope = uploadChannelType.getScope();
-        this.setUrl = false;
-        this.setCallback = false;
-        this.enabled = true;
-        this.createBy = ossUser;
-    }
-}

+ 0 - 36
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/po/UserKey.java

@@ -1,36 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.po;
-
-import cn.reghao.jutil.jdk.web.db.BaseObject;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
-
-/**
- * @author reghao
- * @date 2024-02-27 10:32:53
- */
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-public class UserKey extends BaseObject<Integer> {
-    @NotBlank
-    @Size(min = 8, max = 8)
-    private String accessKeyId;
-    @NotBlank
-    @Size(min = 20, max = 20)
-    private String accessKeySecret;
-    @NotNull
-    private Long createBy;
-
-    public UserKey(String accessKeyId, String accessKeySecret, long createBy) {
-        this.accessKeyId = accessKeyId;
-        this.accessKeySecret = accessKeySecret;
-        this.createBy = createBy;
-    }
-}

+ 0 - 51
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/po/UserNode.java

@@ -1,51 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.po;
-
-import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.tnb.file.app.zoss.model.dto.NodeAddDto;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Pattern;
-
-/**
- * @author reghao
- * @date 2024-02-27 09:45:11
- */
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-public class UserNode extends BaseObject<Integer> {
-    @NotNull
-    private Integer storeNodeId;
-    @NotBlank
-    @Pattern(regexp = "^[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}$", message = "域名格式不正确")
-    private String domain;
-    private String protocol;
-    private String secretKey;
-    private String referer;
-    @NotNull
-    private Integer createBy;
-
-    private String storeNodeAddr;
-
-    public UserNode(NodeAddDto nodeAddDto, int createBy) {
-        this.storeNodeId = nodeAddDto.getStoreNodeId();
-        this.domain = nodeAddDto.getDomain();
-        this.protocol = nodeAddDto.getProtocol();
-        this.createBy = createBy;
-    }
-
-    public UserNode(int storeNodeId, String domain, String secretKey, String referer, int createBy) {
-        this.storeNodeId = storeNodeId;
-        this.domain = domain;
-        this.protocol = "http";
-        this.secretKey = secretKey;
-        this.referer = referer;
-        this.createBy = createBy;
-    }
-}

+ 0 - 17
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/vo/AddChannelAttr.java

@@ -1,17 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.vo;
-
-import cn.reghao.tnb.common.db.SelectOption;
-import lombok.AllArgsConstructor;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2025-10-18 20:52:03
- */
-@AllArgsConstructor
-public class AddChannelAttr {
-    List<SelectOption> objectTypes;
-    List<SelectOption> objectScopes;
-    List<SelectOption> sizeList;
-}

+ 0 - 30
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/vo/FileInfo.java

@@ -1,30 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.vo;
-
-import cn.reghao.tnb.oss.api.constant.ObjectType;
-import cn.reghao.tnb.oss.api.dto.ObjectInfo;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2024-10-30 10:24:28
- */
-@AllArgsConstructor
-@Getter
-public class FileInfo {
-    private String fileId;
-    private String filename;
-    private String updateTime;
-    private String size;
-    private int fileType;
-    private String fileTypeStr;
-
-    public FileInfo(ObjectInfo objectInfo, String size) {
-        this.fileId = objectInfo.getObjectId();
-        this.filename = objectInfo.getFilename();
-        this.updateTime = objectInfo.getUpdateTime();
-        this.size = size;
-        this.fileType = objectInfo.getFileType();
-        this.fileTypeStr = ObjectType.getDescByCode(objectInfo.getFileType());
-    }
-}

+ 0 - 33
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/model/vo/StoreNodeInfo.java

@@ -1,33 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.model.vo;
-
-import cn.reghao.tnb.file.app.zoss.model.po.StoreNode;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2024-08-23 17:47:49
- */
-@Getter
-public class StoreNodeInfo {
-    private int id;
-    private String nodeAddr;
-    private int httpPort;
-    private int rpcPort;
-    private String total;
-    private String used;
-    private double percent;
-    private String status;
-    private boolean enabled;
-
-    public StoreNodeInfo(StoreNode storeNode, String total, String used, double percent) {
-        this.id = storeNode.getId();
-        this.nodeAddr = storeNode.getNodeAddr();
-        this.httpPort = storeNode.getHttpPort();
-        this.rpcPort = storeNode.getRpcPort();
-        this.total = total;
-        this.used = used;
-        this.percent = percent;
-        this.status = storeNode.getEnabled() ? "可读写" : "只读";
-        this.enabled = storeNode.getEnabled();
-    }
-}

+ 0 - 115
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/rpc/ConsoleServiceImpl.java

@@ -1,115 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.rpc;
-
-import cn.reghao.tnb.oss.api.dto.NodeProperties;
-import cn.reghao.tnb.oss.api.dto.ObjectChannel;
-import cn.reghao.tnb.oss.api.dto.StoreNodeDto;
-import cn.reghao.tnb.oss.api.iface.ConsoleService;
-import cn.reghao.tnb.oss.api.iface.StoreService;
-import cn.reghao.tnb.oss.api.dto.ServerInfo;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreNode;
-import cn.reghao.tnb.file.app.zoss.model.po.UploadChannel;
-import cn.reghao.tnb.file.app.zoss.model.po.UserNode;
-import cn.reghao.tnb.file.app.service.StoreConfigService;
-import cn.reghao.tnb.file.app.zoss.service.StoreNodeService;
-import cn.reghao.tnb.file.app.zoss.service.UploadChannelService;
-import cn.reghao.tnb.file.app.zoss.service.UserNodeService;
-import org.apache.dubbo.config.annotation.DubboService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-07-02 10:58:51
- */
-@DubboService
-@Service
-public class ConsoleServiceImpl implements ConsoleService {
-    private final UploadChannelService uploadChannelService;
-    private final StoreNodeService storeNodeService;
-    private final UserNodeService userNodeService;
-    private final RpcService rpcService;
-    private final StoreConfigService storeConfigService;
-
-    public ConsoleServiceImpl(UploadChannelService uploadChannelService, StoreNodeService storeNodeService,
-                              UserNodeService userNodeService, RpcService rpcService, StoreConfigService storeConfigService) {
-        this.uploadChannelService = uploadChannelService;
-        this.storeNodeService = storeNodeService;
-        this.userNodeService = userNodeService;
-        this.rpcService = rpcService;
-        this.storeConfigService = storeConfigService;
-    }
-
-    @Override
-    public void registerNode(StoreNodeDto storeNodeDto) {
-        storeNodeService.addOrUpdate(storeNodeDto);
-    }
-
-    @Override
-    public NodeProperties getNodeProperties(String domain) {
-        UserNode userNode = userNodeService.getUserNodeByDomain(domain);
-        if (userNode != null) {
-            String secretKey = userNode.getDomain();
-            String referer = userNode.getReferer();
-            long owner = userNode.getCreateBy();
-            return new NodeProperties(domain, secretKey, referer, (int) owner);
-        }
-
-        return null;
-    }
-
-    @Override
-    public ObjectChannel getChannelByCode(int owner, int channelCode) {
-        return uploadChannelService.getObjectChannelByChannelCode(channelCode, owner);
-    }
-
-    @Override
-    public Integer getChannelCodeByUrl(int owner, String url) {
-        List<UploadChannel> uploadChannels = uploadChannelService.getUploadChannelsByCreateBy(owner);
-        String url1 = url.replace("//", "");
-        int idx = url1.indexOf("/");
-        String objectName = url1.substring(idx+1);
-        for (UploadChannel uploadChannel : uploadChannels) {
-            if (objectName.startsWith(uploadChannel.getPrefix())) {
-                return uploadChannel.getChannelCode();
-            }
-        }
-
-        return -1;
-    }
-
-    @Override
-    public ServerInfo getUploadStore(int channelCode) {
-        int ossUser = storeConfigService.getLocalOssUser();
-        UploadChannel uploadChannel = uploadChannelService.getByChannelCodeAndCreateBy(channelCode, ossUser);
-        if (uploadChannel == null) {
-            String errMsg = String.format("channelCode %s not exist", channelCode);
-            return null;
-        }
-
-        UserNode userNode = userNodeService.getUserNode(uploadChannel.getUserNodeId());
-        if (userNode == null) {
-            String errMsg = String.format("channel_code %s not associate with any store_node", uploadChannel.getId());
-            return null;
-        }
-
-        String protocol = userNode.getProtocol();
-        String domain = userNode.getDomain();
-        String ossUrl = String.format("%s://%s", protocol, domain);
-        long maxSize = uploadChannel.getMaxSize();
-
-        try {
-            StoreNode storeNode = storeNodeService.getByStoreNodeId(userNode.getStoreNodeId());
-            StoreService storeService = rpcService.getStoreService(storeNode);
-
-            // 多少秒后 token 过期
-            int expire = 3600;
-            String uploadToken = storeService.getUploadToken(channelCode, ossUser, expire);
-            return new ServerInfo(ossUrl, channelCode, maxSize, uploadToken);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        return null;
-    }
-}

+ 0 - 33
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/rpc/RemoteService.java

@@ -1,33 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.rpc;
-
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ConsumerConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-
-/**
- * @author reghao
- * @date 2024-02-23 13:19:20
- */
-public class RemoteService<T> {
-    public T getService(String host, int port, Class<T> clazz) {
-        String serviceName = "remote-service";
-        String dubboUrl = String.format("dubbo://%s:%s/%s", host, port, clazz.getName());
-
-        // 当前应用配置
-        ApplicationConfig application = new ApplicationConfig();
-        application.setName(serviceName);
-
-        ConsumerConfig consumerConfig = new ConsumerConfig();
-        consumerConfig.setTimeout(60_000);
-
-        // 注意:ReferenceConfig为重对象,内部封装了与注册中心的连接,以及与服务提供方的连接
-        // 引用远程服务
-        // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏
-        ReferenceConfig<T> reference = new ReferenceConfig<>();
-        reference.setApplication(application);
-        reference.setInterface(clazz);
-        reference.setUrl(dubboUrl);
-        reference.setConsumer(consumerConfig);
-        return reference.get();
-    }
-}

+ 0 - 51
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/rpc/RpcService.java

@@ -1,51 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.rpc;
-
-import cn.reghao.tnb.oss.api.iface.StoreService;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreNode;
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ConsumerConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.springframework.stereotype.Service;
-
-/**
- * @author reghao
- * @date 2024-07-05 10:44:51
- */
-@Service
-public class RpcService {
-    public StoreService getStoreService(StoreNode storeNode) {
-        RemoteService<StoreService> remoteService = new RemoteService<>();
-        String host = storeNode.getNodeAddr();
-        int port = storeNode.getRpcPort();
-        return remoteService.getService(host, port, StoreService.class);
-    }
-
-    public StoreService getStoreService(String host, int port) {
-        RemoteService<StoreService> remoteService = new RemoteService<>();
-        return remoteService.getService(host, port, StoreService.class);
-    }
-
-    static class RemoteService<T> {
-        public T getService(String host, int port, Class<T> clazz) {
-            String serviceName = "remote-service";
-            String dubboUrl = String.format("dubbo://%s:%s/%s", host, port, clazz.getName());
-
-            // 当前应用配置
-            ApplicationConfig application = new ApplicationConfig();
-            application.setName(serviceName);
-
-            ConsumerConfig consumerConfig = new ConsumerConfig();
-            consumerConfig.setTimeout(60_000);
-
-            // 注意:ReferenceConfig为重对象,内部封装了与注册中心的连接,以及与服务提供方的连接
-            // 引用远程服务
-            // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏
-            ReferenceConfig<T> reference = new ReferenceConfig<>();
-            reference.setApplication(application);
-            reference.setInterface(clazz);
-            reference.setUrl(dubboUrl);
-            reference.setConsumer(consumerConfig);
-            return reference.get();
-        }
-    }
-}

+ 0 - 153
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/rpc/StoreServiceWrapper.java

@@ -1,153 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.rpc;
-
-import cn.reghao.tnb.oss.api.dto.disk.DiskVolume;
-import cn.reghao.tnb.oss.api.iface.StoreService;
-import cn.reghao.tnb.oss.api.dto.ObjectInfo;
-import cn.reghao.tnb.oss.api.dto.media.AudioInfo;
-import cn.reghao.tnb.oss.api.dto.media.ConvertedImageInfo;
-import cn.reghao.tnb.oss.api.dto.media.ImageInfo;
-import cn.reghao.tnb.oss.api.dto.media.VideoInfo;
-import cn.reghao.tnb.file.app.zoss.db.mapper.StoreNodeMapper;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreNode;
-import cn.reghao.tnb.file.app.zoss.service.UserNodeService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 对 oss-store 进行操作
- * 第三方通过 oss-console 调用
- *
- * @author reghao
- * @date 2024-04-23 15:14:06
- */
-@Service
-public class StoreServiceWrapper {
-    private final RpcService rpcService;
-    private final UserNodeService userNodeService;
-    private final StoreNodeMapper storeNodeMapper;
-
-    public StoreServiceWrapper(RpcService rpcService, UserNodeService userNodeService, StoreNodeMapper storeNodeMapper) {
-        this.rpcService = rpcService;
-        this.userNodeService = userNodeService;
-        this.storeNodeMapper = storeNodeMapper;
-    }
-
-    private StoreService getStoreService(int channelCode, int owner) throws Exception {
-        StoreNode storeNode = userNodeService.getStoreNodeByChannel(channelCode, owner);
-        if (storeNode == null) {
-            String errMsg = String.format("channel_code %s not associate with any store_node", channelCode);
-            throw new Exception(errMsg);
-        }
-
-        return rpcService.getStoreService(storeNode);
-    }
-
-    public void createChannel(int userNodeId, String channelPrefix, int scope, int owner) throws Exception {
-        StoreNode storeNode = userNodeService.getStoreNode(userNodeId);
-        StoreService storeService = rpcService.getStoreService(storeNode);
-        storeService.createChannel(owner, channelPrefix, scope);
-    }
-
-    public Integer countChannelObjects(int channelCode, String channelPrefix, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        return storeService.countChannelObjects(channelPrefix, owner);
-    }
-
-    public List<DiskVolume> getDiskVolumes(int storeNodeId) {
-        StoreNode storeNode = storeNodeMapper.findById(storeNodeId);
-        StoreService storeService = rpcService.getStoreService(storeNode);
-        return storeService.getDiskVolumes();
-    }
-
-    public void setObjectUpload(int channelCode, String objectId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        storeService.setObjectUpload(objectId);
-    }
-
-    public void setObjectScope(int channelCode, String objectId, int scope, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        storeService.setObjectScope(objectId, scope);
-    }
-
-    public void deleteByObjectId(int channelCode, String objectId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        storeService.deleteByObjectId(objectId);
-    }
-
-    public void deleteByObjectName(int channelCode, String objectName, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        storeService.deleteByObjectName(objectName, owner);
-    }
-
-    public void deleteByObjectUrl(String objectUrl, int owner) {
-        String domain = objectUrl.replace("//", "").split("/")[0];
-        String objectName = objectUrl.replace("//" + domain + "/", "");
-        StoreNode storeNode = userNodeService.getStoreNodeByDomain(domain);
-        StoreService storeService = rpcService.getStoreService(storeNode);
-        storeService.deleteByObjectName(objectName, owner);
-    }
-
-    public ObjectInfo getObjectInfo(int channelCode, String objectId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        ObjectInfo objectInfo = storeService.getObjectInfo(objectId);
-        String domain = userNodeService.getDomain(channelCode, owner);
-        String url = String.format("//%s/%s", domain, objectInfo.getUrl());
-        objectInfo.setUrl(url);
-        return objectInfo;
-    }
-
-    public String getSignedUrl(int channelCode, String objectId, int owner) throws Exception {
-        String domain = userNodeService.getDomain(channelCode, owner);
-        StoreService storeService = getStoreService(channelCode, owner);
-        // url 有效期为 24h
-        int expire = 3600*24;
-        String signedUrl = storeService.getSignedUrl(domain, owner, objectId, expire);
-        return signedUrl;
-    }
-
-    public String getSignedUrlByUrl(int channelCode, String objectUrl, int owner) throws Exception {
-        String domain = userNodeService.getDomain(channelCode, owner);
-        StoreService storeService = getStoreService(channelCode, owner);
-        // url 有效期为 24h
-        int expire = 3600*24;
-        String signedUrl = storeService.getSignedUrl(objectUrl, owner, expire);
-        return signedUrl;
-    }
-
-    public VideoInfo getVideoInfo(int channelCode, String videoFileId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        VideoInfo videoInfo = storeService.getVideoInfo(videoFileId);
-        String domain = userNodeService.getDomain(channelCode, owner);
-        String url = String.format("//%s/%s", domain, videoInfo.getUrl());
-        videoInfo.setUrl(url);
-        return videoInfo;
-    }
-
-    public ImageInfo getImageInfo(int channelCode, String imageFileId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        ImageInfo imageInfo = storeService.getImageInfo(imageFileId);
-        String domain = userNodeService.getDomain(channelCode, owner);
-        String url = String.format("//%s/%s", domain, imageInfo.getUrl());
-        imageInfo.setUrl(url);
-        return imageInfo;
-    }
-
-    public ConvertedImageInfo getWebpInfo(int channelCode, String imageFileId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        ConvertedImageInfo convertedImageInfo = storeService.getWebpInfo(imageFileId);
-        String domain = userNodeService.getDomain(channelCode, owner);
-        String url = String.format("//%s/%s", domain, convertedImageInfo.getUrl());
-        convertedImageInfo.setUrl(url);
-        return convertedImageInfo;
-    }
-
-    public AudioInfo getAudioInfo(int channelCode, String audioFileId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        AudioInfo audioInfo = storeService.getAudioInfo(audioFileId);
-        String domain = userNodeService.getDomain(channelCode, owner);
-        String url = String.format("//%s/%s", domain, audioInfo.getUrl());
-        audioInfo.setUrl(url);
-        return audioInfo;
-    }
-}

+ 0 - 179
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/service/StoreNodeService.java

@@ -1,179 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.service;
-
-import cn.reghao.jutil.jdk.converter.ByteConverter;
-import cn.reghao.jutil.jdk.converter.ByteType;
-import cn.reghao.jutil.jdk.math.Calculator;
-import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.tnb.oss.api.dto.StoreNodeDto;
-import cn.reghao.tnb.oss.api.dto.disk.DiskVolume;
-import cn.reghao.tnb.file.app.zoss.db.mapper.StoreNodeMapper;
-import cn.reghao.tnb.file.app.zoss.db.mapper.StoreVolumeMapper;
-import cn.reghao.tnb.file.app.zoss.db.mapper.UserNodeMapper;
-import cn.reghao.tnb.file.app.zoss.db.repository.StoreRepository;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreNode;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreVolume;
-import cn.reghao.tnb.common.db.SelectOption;
-import cn.reghao.tnb.file.app.zoss.model.vo.StoreNodeInfo;
-import cn.reghao.tnb.file.app.zoss.rpc.StoreServiceWrapper;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2024-02-23 13:01:38
- */
-@Slf4j
-@Service
-public class StoreNodeService {
-    private final ByteConverter byteConverter;
-    private final StoreNodeMapper storeNodeMapper;
-    private final StoreVolumeMapper storeVolumeMapper;
-    private final UserNodeMapper userNodeMapper;
-    private final StoreServiceWrapper storeServiceWrapper;
-    private final StoreRepository storeRepository;
-    private final UserNodeService userNodeService;
-    private final UploadChannelService uploadChannelService;
-
-    public StoreNodeService(ByteConverter byteConverter, StoreNodeMapper storeNodeMapper,
-                            StoreVolumeMapper storeVolumeMapper, UserNodeMapper userNodeMapper,
-                            StoreServiceWrapper storeServiceWrapper, StoreRepository storeRepository,
-                            UserNodeService userNodeService, UploadChannelService uploadChannelService) {
-        this.byteConverter = byteConverter;
-        this.storeNodeMapper = storeNodeMapper;
-        this.storeVolumeMapper = storeVolumeMapper;
-        this.userNodeMapper = userNodeMapper;
-        this.storeServiceWrapper = storeServiceWrapper;
-        this.storeRepository = storeRepository;
-        this.userNodeService = userNodeService;
-        this.uploadChannelService = uploadChannelService;
-    }
-
-    public void addOrUpdate(StoreNodeDto storeNodeDto) {
-        String nodeAddr = storeNodeDto.getNodeAddr();
-        int httpPort = storeNodeDto.getHttpPort();
-        StoreNode storeNode = storeNodeMapper.findByNodeAddrAndHttpPort(nodeAddr, httpPort);
-        if (storeNode == null) {
-            storeRepository.saveStoreNode(storeNodeDto);
-            init();
-        } else {
-            int storeNodeId = storeNode.getId();
-            List<StoreVolume> storeVolumes = storeNodeDto.getDiskVolumes().stream()
-                    .map(diskVolume -> new StoreVolume(storeNodeId, diskVolume))
-                    .collect(Collectors.toList());
-            //storeVolumeMapper.saveAll(storeVolumes);
-        }
-    }
-
-    private void init() {
-        // 没有 UserNode
-        int total = userNodeMapper.findAll().size();
-        if (total == 0) {
-            userNodeService.initUserNode();
-        }
-        try {
-            uploadChannelService.initUploadChannel();
-        } catch (Exception e) {
-            log.error("初始化 UploadChannel 异常: {}", e.getMessage());
-        }
-    }
-
-    public Result updateStatus(int storeNodeId) {
-        StoreNode storeNode = storeNodeMapper.findById(storeNodeId);
-        if (storeNode != null) {
-            boolean enabled = storeNode.getEnabled();
-            storeNode.setEnabled(!enabled);
-            storeNodeMapper.save(storeNode);
-            return Result.success();
-        }
-
-        return Result.fail("存储节点不存在");
-    }
-
-    public Result delete(int storeNodeId) {
-        StoreNode storeNode = storeNodeMapper.findById(storeNodeId);
-        if (storeNode == null) {
-            return Result.fail("node not exist");
-        }
-
-        int total = userNodeMapper.countByStoreNodeId(storeNodeId);
-        if (total > 0) {
-            return Result.fail("someone uses the node");
-        }
-
-        storeNodeMapper.delete(storeNode);
-        return Result.success();
-    }
-
-    public List<StoreNodeInfo> getByPage() {
-        List<StoreNode> page = storeNodeMapper.findAll();
-        List<StoreNodeInfo> list =  page.stream().map(storeNode -> {
-            List<StoreVolume> storeVolumeList = storeVolumeMapper.findByStoreNodeId(storeNode.getId());
-            long total = 0L;
-            long avail = 0L;
-            for (StoreVolume storeVolume : storeVolumeList) {
-                total += storeVolume.getTotalSpace();
-                avail += storeVolume.getAvailSpace();
-            }
-            long used = total - avail;
-
-            String totalStr = byteConverter.convert(ByteType.Bytes, total);
-            String usedStr = byteConverter.convert(ByteType.Bytes, used);
-            double percent = 0;
-            if (avail != 0) {
-                percent = Calculator.getPercentage(total, avail);
-            }
-            return new StoreNodeInfo(storeNode, totalStr, usedStr, percent);
-        }).collect(Collectors.toList());
-
-        return list;
-    }
-
-    public StoreNode getByStoreNodeId(int id) {
-        return storeNodeMapper.findById(id);
-    }
-
-    public List<SelectOption> getNodeKeyValues() {
-        return storeNodeMapper.findAll().stream()
-                .map(storeNode -> {
-                    int storeNodeId = storeNode.getId();
-                    String nodeAddr = storeNode.getNodeAddr();
-                    return new SelectOption(nodeAddr, storeNodeId+"");
-                }).collect(Collectors.toList());
-    }
-
-    public List<StoreVolume> getStoreDisks(int storeNodeId) {
-        StoreNode storeNode = storeNodeMapper.findById(storeNodeId);
-        if (storeNode == null) {
-            return null;
-        }
-
-        List<DiskVolume> list = storeServiceWrapper.getDiskVolumes(storeNodeId);
-        List<StoreVolume> storeVolumes = list.stream()
-                .map(diskVolume -> new StoreVolume(storeNodeId, diskVolume))
-                .collect(Collectors.toList());
-        //storeVolumeMapper.saveAll(storeVolumes);
-
-        storeVolumes.forEach(storeVolume -> {
-            long total = storeVolume.getTotalSpace();
-            long avail = storeVolume.getAvailSpace();
-            long used = total - avail;
-            double percent = Calculator.getPercentage(total, avail);
-            String totalStr = byteConverter.convert(ByteType.Bytes, total);
-            String usedStr = byteConverter.convert(ByteType.Bytes, used);
-            storeVolume.setUsedSpaceStr(usedStr);
-            storeVolume.setPercentSpace(percent);
-
-            long totalInode = storeVolume.getTotalInode();
-            long availInode = storeVolume.getAvailInode();
-            long usedInode = totalInode - availInode;
-            double percentInode = Calculator.getPercentage(totalInode, availInode);
-            storeVolume.setUsedInode(usedInode);
-            storeVolume.setPercentInode(percentInode);
-        });
-
-        return storeVolumes;
-    }
-}

+ 0 - 163
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/service/UploadChannelService.java

@@ -1,163 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.service;
-
-import cn.reghao.jutil.jdk.converter.ByteConverter;
-import cn.reghao.jutil.jdk.converter.ByteType;
-import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.jutil.jdk.web.result.ResultStatus;
-import cn.reghao.tnb.file.app.service.StoreConfigService;
-import cn.reghao.tnb.oss.api.dto.ObjectChannel;
-import cn.reghao.tnb.oss.api.constant.ObjectScope;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
-import cn.reghao.tnb.common.util.ConstantId;
-import cn.reghao.tnb.file.app.zoss.db.mapper.UploadChannelMapper;
-import cn.reghao.tnb.file.app.zoss.db.repository.ChannelRepository;
-import cn.reghao.file.api.constant.UploadChannelType;
-import cn.reghao.tnb.file.app.zoss.model.dto.UploadChannelDto;
-import cn.reghao.tnb.file.app.zoss.model.po.UploadChannel;
-import cn.reghao.tnb.file.app.zoss.model.po.UserNode;
-import cn.reghao.tnb.file.app.zoss.rpc.StoreServiceWrapper;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-23 15:14:53
- */
-@Service
-public class UploadChannelService {
-    private final ByteConverter byteConverter;
-    private final UploadChannelMapper uploadChannelMapper;
-    private final UserNodeService userNodeService;
-    private final StoreServiceWrapper storeServiceWrapper;
-    private final StoreConfigService storeConfigService;
-    private final ChannelRepository channelRepository;
-
-    public UploadChannelService(ByteConverter byteConverter, UploadChannelMapper uploadChannelMapper,
-                                UserNodeService userNodeService, StoreServiceWrapper storeServiceWrapper,
-                                StoreConfigService storeConfigService, ChannelRepository channelRepository) {
-        this.byteConverter = byteConverter;
-        this.uploadChannelMapper = uploadChannelMapper;
-        this.userNodeService = userNodeService;
-        this.storeServiceWrapper = storeServiceWrapper;
-        this.storeConfigService = storeConfigService;
-        this.channelRepository = channelRepository;
-    }
-
-    public synchronized Result addObjectChannel(UploadChannelDto uploadChannelDto) throws Exception {
-        long createBy = storeConfigService.getLocalOssUser();
-        int userNodeId = uploadChannelDto.getUserNodeId();
-        UserNode userNode = userNodeService.getUserNode(userNodeId);
-        if (userNode == null) {
-            return Result.fail(String.format("store_node with id %s not exist", userNodeId));
-        }
-
-        String channelPrefix = uploadChannelDto.getChannelPrefix();
-        UploadChannel uploadChannel = uploadChannelMapper.findByCreateByAndPrefix(createBy, channelPrefix);
-        if (uploadChannel != null) {
-            return Result.fail(String.format("channel_prefix %s exist", channelPrefix));
-        }
-
-        int channelCode = getNextChannelCode(createBy);
-        uploadChannel = new UploadChannel(channelCode, uploadChannelDto, (int) createBy);
-        channelRepository.createUploadChannel(uploadChannel);
-        return Result.success();
-    }
-
-    /**
-     * 初始化系统中使用的 UploadChannel
-     *
-     * @param
-     * @return
-     * @date 2025-10-21 09:55:23
-     */
-    public void initUploadChannel() throws Exception {
-        int ossUser = storeConfigService.getLocalOssUser();
-        List<UserNode> list = userNodeService.getUserNodes(ossUser);
-        if (list.size() == 1 && uploadChannelMapper.findByCreateBy(ossUser).isEmpty()) {
-            int userNodeId = list.get(0).getId();
-            for (UploadChannelType uploadChannelType : UploadChannelType.values()) {
-                UploadChannel uploadChannel = new UploadChannel(userNodeId, uploadChannelType, ossUser);
-                channelRepository.createUploadChannel(uploadChannel);
-            }
-        }
-    }
-
-    private int getNextChannelCode(long createBy) {
-        int total = uploadChannelMapper.countByCreateBy(createBy);
-        return ConstantId.START_CHANNEL_CODE + total;
-    }
-
-    public void updateChannelStatus(int id) {
-        UploadChannel uploadChannel = uploadChannelMapper.findById(id);
-        if (uploadChannel != null) {
-            boolean enabled = uploadChannel.getEnabled();
-            uploadChannel.setEnabled(!enabled);
-            uploadChannelMapper.save(uploadChannel);
-        }
-    }
-
-    public Result deleteChannel(int id) throws Exception {
-        UploadChannel uploadChannel = uploadChannelMapper.findById(id);
-        if (uploadChannel == null) {
-            String errMsg = String.format("通道不存在");
-            return Result.result(ResultStatus.FAIL, errMsg);
-        }
-
-        int channelCode = uploadChannel.getId();
-        String prefix = uploadChannel.getPrefix();
-        int ossUser = storeConfigService.getLocalOssUser();
-        Integer total = storeServiceWrapper.countChannelObjects(channelCode, prefix, ossUser);
-        if (total != null && total == 0) {
-            storeServiceWrapper.deleteByObjectName(channelCode, prefix, ossUser);
-            uploadChannelMapper.deleteById(id);
-            return Result.result(ResultStatus.SUCCESS);
-        }
-
-        String errMsg = String.format("%s 通道中尚有对象存在", prefix);
-        return Result.result(ResultStatus.FAIL, errMsg);
-    }
-
-    public List<UploadChannel> getChannelsByUserNode(int userNodeId) {
-        long createBy = storeConfigService.getLocalOssUser();
-        List<UploadChannel> list = uploadChannelMapper.findByCreateByAndUserNodeId(createBy, userNodeId);
-        list.forEach(uploadChannel -> {
-            String maxSizeStr = byteConverter.convert(ByteType.Bytes, uploadChannel.getMaxSize());
-            uploadChannel.setMaxSizeStr(maxSizeStr);
-            String fileTypeStr = ObjectType.getDescByCode(uploadChannel.getFileType());
-            uploadChannel.setFileTypeStr(fileTypeStr);
-            String scopeStr = ObjectScope.getByCode(uploadChannel.getScope()).name();
-            uploadChannel.setScopeStr(scopeStr);
-        });
-
-        return list;
-    }
-
-    public List<UploadChannel> getUploadChannelsByCreateBy(long createBy) {
-        return uploadChannelMapper.findByCreateBy(createBy);
-    }
-
-    public UploadChannel getByChannelCodeAndCreateBy(int channelCode, long createBy) {
-        return uploadChannelMapper.findByCreateByAndChannelCode(createBy, channelCode);
-    }
-
-    public ObjectChannel getObjectChannelByChannelCode(int channelCode, long createBy) {
-        UploadChannel uploadChannel = uploadChannelMapper.findByCreateByAndChannelCode(createBy, channelCode);
-        if (uploadChannel == null) {
-            return null;
-        }
-
-        int id = uploadChannel.getId();
-        String channelPrefix = uploadChannel.getPrefix();
-        long maxSize = uploadChannel.getMaxSize();
-        int fileType = uploadChannel.getFileType();
-        boolean setUrl = uploadChannel.getSetUrl();
-        boolean setCallback = uploadChannel.getSetCallback();
-        int scope = uploadChannel.getScope();
-
-        UserNode userNode = userNodeService.getUserNode(uploadChannel.getUserNodeId());
-        String domain = userNode.getDomain();
-        return new ObjectChannel(id, channelCode, channelPrefix, maxSize, fileType,
-                setUrl, setCallback, scope, domain, (int) createBy);
-    }
-}

+ 0 - 94
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/service/UserKeyService.java

@@ -1,94 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.service;
-
-import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.jutil.jdk.security.RandomString;
-import cn.reghao.tnb.oss.api.constant.ChannelAction;
-import cn.reghao.tnb.auth.model.OssPayload;
-import cn.reghao.tnb.common.auth.LoginUser;
-import cn.reghao.tnb.auth.JwtUtil;
-import cn.reghao.tnb.file.app.zoss.db.mapper.UserKeyMapper;
-import cn.reghao.tnb.file.app.zoss.model.dto.KeyAuthDto;
-import cn.reghao.tnb.file.app.zoss.model.po.UserKey;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-27 10:25:25
- */
-@Service
-public class UserKeyService {
-    private final String secretKey = "ossconsole.reghao.cn";
-    private final UserKeyMapper userKeyMapper;
-
-    public UserKeyService(UserKeyMapper userKeyMapper) {
-        this.userKeyMapper = userKeyMapper;
-    }
-
-    public Result auth(KeyAuthDto keyAuthDto) {
-        String accessKeyId = keyAuthDto.getAccessKeyId();
-        UserKey userKey = userKeyMapper.findByAccessKeyId(accessKeyId);
-        if (userKey == null) {
-            return Result.fail("key not exist");
-        }
-
-        String accessKeySecret = keyAuthDto.getAccessKeySecret();
-        if (userKey.getAccessKeySecret().equals(accessKeySecret)) {
-            long loginUser = userKey.getCreateBy();
-            String token = getTokenByUserId(loginUser);
-            return Result.success(token);
-        }
-
-        return Result.fail("secret not matched");
-    }
-
-    private String getTokenByUserId(long loginUser) {
-        long timestamp = System.currentTimeMillis() + 3600*24*365*1000L;
-        String action = ChannelAction.all.getName();
-        int channelCode = 1;
-        OssPayload ossPayload = new OssPayload(channelCode, action, (int) loginUser);
-        return JwtUtil.createOssToken(ossPayload, timestamp, secretKey);
-    }
-
-    public LoginUser getUserFromToken(String token) {
-        try {
-            OssPayload ossPayload = JwtUtil.getOssPayload(token, secretKey);
-            int userId = ossPayload.getUserId();
-            return new LoginUser(userId);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    public void regenerate(int ossUser) {
-        UserKey userKey = userKeyMapper.findByCreateBy(ossUser);
-        if (userKey == null) {
-            return;
-        }
-
-        String accessKeyId = RandomString.getString(8);
-        String accessKeySecret = RandomString.getString(18);
-        userKey.setAccessKeyId(accessKeyId);
-        userKey.setAccessKeySecret(accessKeySecret);
-        userKeyMapper.updateByCreateBy(userKey);
-    }
-
-    public List<UserKey> getUserKeys(int ossUser) {
-        UserKey userKey = userKeyMapper.findByCreateBy(ossUser);
-        if (userKey == null) {
-            userKey = create(ossUser);
-        }
-
-        return List.of(userKey);
-    }
-
-    private UserKey create(int ossUser) {
-        String accessKeyId = RandomString.getString(8);
-        String accessKeySecret = RandomString.getString(20);
-        UserKey userKey = new UserKey(accessKeyId, accessKeySecret, ossUser);
-        userKeyMapper.save(userKey);
-        return userKey;
-    }
-}

+ 0 - 165
file/file-service/src/main/java/cn/reghao/tnb/file/app/zoss/service/UserNodeService.java

@@ -1,165 +0,0 @@
-package cn.reghao.tnb.file.app.zoss.service;
-
-import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.tnb.common.util.ConstantId;
-import cn.reghao.tnb.file.app.service.StoreConfigService;
-import cn.reghao.tnb.file.app.zoss.db.mapper.StoreNodeMapper;
-import cn.reghao.tnb.file.app.zoss.db.mapper.UploadChannelMapper;
-import cn.reghao.tnb.file.app.zoss.db.mapper.UserNodeMapper;
-import cn.reghao.tnb.file.app.zoss.model.dto.NodeAddDto;
-import cn.reghao.tnb.file.app.zoss.model.dto.NodeUpdateDto;
-import cn.reghao.tnb.file.app.zoss.model.po.StoreNode;
-import cn.reghao.tnb.file.app.zoss.model.po.UploadChannel;
-import cn.reghao.tnb.file.app.zoss.model.po.UserNode;
-import cn.reghao.tnb.common.db.SelectOption;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2024-02-27 09:49:56
- */
-@Slf4j
-@Service
-public class UserNodeService {
-    private final UserNodeMapper userNodeMapper;
-    private final StoreNodeMapper storeNodeMapper;
-    private final UploadChannelMapper uploadChannelMapper;
-    private final StoreConfigService storeConfigService;
-
-    public UserNodeService(UserNodeMapper userNodeMapper, StoreNodeMapper storeNodeMapper,
-                           UploadChannelMapper uploadChannelMapper, StoreConfigService storeConfigService) {
-        this.userNodeMapper = userNodeMapper;
-        this.storeNodeMapper = storeNodeMapper;
-        this.uploadChannelMapper = uploadChannelMapper;
-        this.storeConfigService = storeConfigService;
-    }
-
-    public Result add(NodeAddDto nodeAddDto) {
-        int storeNodeId = nodeAddDto.getStoreNodeId();
-        int ossUser = storeConfigService.getLocalOssUser();
-        UserNode userNode = userNodeMapper.findByCreateByAndStoreNodeId(ossUser, storeNodeId);
-        if (userNode != null) {
-            return Result.fail("UserNode exist");
-        }
-
-        StoreNode storeNode = storeNodeMapper.findById(storeNodeId);
-        if (storeNode == null) {
-            return Result.success("StoreNode not exist");
-        }
-
-        userNode = new UserNode(nodeAddDto, ossUser);
-        userNodeMapper.save(userNode);
-        return Result.success("node added");
-    }
-
-    /**
-     * 自动初始化 UserNode
-     *
-     * @param
-     * @return
-     * @date 2025-10-21 09:41:46
-     */
-    public void initUserNode() {
-        userNodeMapper.findAll();
-
-        int ossUser = storeConfigService.getLocalOssUser();
-        if (ossUser == ConstantId.ANONYMOUS_USER_ID) {
-            log.error("ossUser not exist, initUserNode failed...");
-            return;
-        }
-
-        StoreNode storeNode = storeNodeMapper.findFirstStore();
-        if (storeNode == null) {
-            log.error("StoreNode not exist, initUserNode failed...");
-            return;
-        }
-
-        int storeNodeId = storeNode.getId();
-        String domain = ConstantId.OSS_DOMAIN;
-        String secretKey = "";
-        String referer = "";
-        UserNode userNode = new UserNode(storeNodeId, domain, secretKey, referer, ossUser);
-        userNodeMapper.save(userNode);
-    }
-
-    public void updateUserNode(NodeUpdateDto nodeUpdateDto) {
-        userNodeMapper.updateUserNode(nodeUpdateDto);
-    }
-
-    public Result delete(int id) {
-        UserNode userNode = userNodeMapper.findById(id);
-        if (userNode != null) {
-            int userNodeId = userNode.getId();
-            int ossUser = storeConfigService.getLocalOssUser();
-            List<UploadChannel> uploadChannels = uploadChannelMapper.findByCreateByAndUserNodeId(ossUser, userNodeId);
-            if (!uploadChannels.isEmpty()) {
-                return Result.fail("UploadChannel exists");
-            }
-
-            userNodeMapper.delete(userNode);
-            return Result.success();
-        }
-
-        return Result.fail("UserNode not exists");
-    }
-
-    public List<UserNode> getUserNodes(int loginUser) {
-        List<UserNode> list = userNodeMapper.findByCreateBy(loginUser);
-        list.forEach(userNode -> {
-            int storeNodeId = userNode.getStoreNodeId();
-            StoreNode storeNode = storeNodeMapper.findById(storeNodeId);
-            String nodeAddr = storeNode.getNodeAddr();
-            userNode.setStoreNodeAddr(nodeAddr);
-        });
-
-        return list;
-    }
-
-    public UserNode getUserNode(int userNodeId) {
-        return userNodeMapper.findById(userNodeId);
-    }
-
-    public UserNode getUserNodeByDomain(String domain) {
-        return userNodeMapper.findByDomain(domain);
-    }
-
-    public String getDomain(int channelCode, int loginUser) {
-        UploadChannel uploadChannel = uploadChannelMapper.findByCreateByAndChannelCode(loginUser, channelCode);
-        int userNodeId = uploadChannel.getUserNodeId();
-        UserNode userNode = userNodeMapper.findById(userNodeId);
-        return userNode.getDomain();
-    }
-
-    public StoreNode getStoreNode(int userNodeId) {
-        UserNode userNode = userNodeMapper.findById(userNodeId);
-        return storeNodeMapper.findById(userNode.getStoreNodeId());
-    }
-
-    public StoreNode getStoreNodeByChannel(int channelCode, int owner) throws Exception {
-        UploadChannel uploadChannel = uploadChannelMapper.findByCreateByAndChannelCode(owner, channelCode);
-        if (uploadChannel == null) {
-            String errMsg = String.format("channel_code %s not exist", channelCode);
-            throw new Exception(errMsg);
-        }
-
-        UserNode userNode = userNodeMapper.findById(uploadChannel.getUserNodeId());
-        return storeNodeMapper.findById(userNode.getStoreNodeId());
-    }
-
-    public StoreNode getStoreNodeByDomain(String domain) {
-        UserNode userNode = userNodeMapper.findByDomain(domain);
-        int storeNodeId = userNode.getStoreNodeId();
-        return storeNodeMapper.findById(storeNodeId);
-    }
-
-    public List<SelectOption> getNodeKeyValues(long createBy) {
-        return userNodeMapper.findByCreateBy(createBy).stream().map(userNode -> {
-            String userNodeDomain = userNode.getDomain();
-            return new SelectOption(userNodeDomain, ""+userNode.getId());
-        }).collect(Collectors.toList());
-    }
-}

+ 31 - 1
file/file-service/src/test/java/DiskUnitTest.java

@@ -1,7 +1,9 @@
 import cn.reghao.jutil.jdk.converter.ByteConverter;
 import cn.reghao.jutil.jdk.converter.ByteType;
+import cn.reghao.oss.api.dto.ServerInfo;
+import cn.reghao.oss.sdk.OssClient;
 import cn.reghao.tnb.file.app.zdisk.model.vo.FileTree;
-import cn.reghao.tnb.oss.api.constant.ObjectType;
+import cn.reghao.oss.api.constant.ObjectType;
 import net.sourceforge.tess4j.Tesseract;
 import org.junit.jupiter.api.Test;
 import org.mockito.junit.MockitoJUnitRunner;
@@ -112,4 +114,32 @@ public class DiskUnitTest {
         String str = byteConverter.convert(ByteType.Bytes, value);
         System.out.println(str);
     }
+
+    @Test
+    public void ossTest() throws Exception {
+        String endpoint = "http://localhost:8010";
+        String ak = "PmvonhHI";
+        String sk = "28aQEK7wJ6U5m7E1u7";
+        OssClient ossClient = new OssClient(endpoint, ak, sk);
+
+        ServerInfo serverInfo = ossClient.getServerInfo();
+        String uploadUrl = serverInfo.getOssUrl();
+        String uploadToken = serverInfo.getToken();
+
+        String baseDir = "/home/reghao/Downloads/1";
+        //client.startWalk(baseDir);
+
+        /*uploadUrl = "http://localhost:8020";
+        String filePath = "/home/reghao/Downloads/abc.mp4";
+        File file = new File(filePath);
+        if (!file.exists()) {
+            System.out.printf("%s not exist\n", filePath);
+            return;
+        }
+        client.upload(uploadUrl, uploadToken, Path.of(filePath));*/
+
+        /*String objectId1 = "3c0403add7ec4127bf66cfdbb4a8ddf1";
+        String signedUrl = uploader.getSignedUrl(objectId1);
+        System.out.printf("signed url -> %s\n", signedUrl);*/
+    }
 }

+ 2 - 2
file/pom.xml

@@ -22,8 +22,8 @@
 
     <dependencies>
         <dependency>
-            <groupId>cn.reghao.tnb</groupId>
-            <artifactId>oss-api</artifactId>
+            <groupId>cn.reghao.oss</groupId>
+            <artifactId>oss-sdk</artifactId>
             <version>1.0.0-SNAPSHOT</version>
         </dependency>
     </dependencies>