Kaynağa Gözat

更新 file-service 的 dto 和 po 数据约束, 以及 po 的数据库表结构

reghao 5 ay önce
ebeveyn
işleme
1c0a6d7fbf
22 değiştirilmiş dosya ile 76 ekleme ve 229 silme
  1. 1 1
      common/src/main/java/cn/reghao/tnb/common/util/StringRegexp.java
  2. 0 21
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/ChannelProcessDto.java
  3. 0 12
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/CreateDir.java
  4. 0 19
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/CreateFolder.java
  5. 5 2
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/KeyAuthDto.java
  6. 0 16
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/MoveFile.java
  7. 0 18
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/PathUrl.java
  8. 0 19
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/RenameFile.java
  9. 0 17
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/SearchForm.java
  10. 0 24
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/StoreConfigInfo.java
  11. 5 6
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/UploadChannelDto.java
  12. 0 30
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/UploadFileRet.java
  13. 0 23
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/UploadedFile.java
  14. 0 2
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/UserNodeDto.java
  15. 1 3
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/UserNodeUpdateDto.java
  16. 5 0
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/po/StoreNode.java
  17. 21 7
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/po/StoreVolume.java
  18. 20 7
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/po/UploadChannel.java
  19. 9 0
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/po/UserKey.java
  20. 8 0
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/po/UserNode.java
  21. 0 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/model/vo/FileInfo.java
  22. 1 1
      file/file-service/src/main/java/cn/reghao/tnb/file/app/service/UserKeyService.java

+ 1 - 1
common/src/main/java/cn/reghao/tnb/common/util/StringRegexp.java

@@ -11,7 +11,7 @@ import java.util.regex.Pattern;
 public class StringRegexp {
     private static final Pattern mobilePattern = Pattern.compile("^1(3\\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\\d|9[0-35-9])\\d{8}$");
     private static final Pattern emailPattern = Pattern.compile("^s*\\w+(?:\\.{0,1}[\\w-]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*\\.[a-zA-Z]+\\s*$");
-    private static final Pattern ipv4Pattern = Pattern.compile("^((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}$ ");
+    private static final Pattern ipv4Pattern = Pattern.compile("^((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}$");
     private static final Pattern domainPattern = Pattern.compile("^(?=^.{3,255}$)[a-z0-9][-a-z0-9]{0,62}(\\.[a-z0-9][-a-z0-9]{0,62})+$");
     private static final Pattern urlPattern = Pattern.compile("(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]");
     private static final Pattern passwordPattern = Pattern.compile("^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{10,32}$");

+ 0 - 21
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/ChannelProcessDto.java

@@ -1,21 +0,0 @@
-package cn.reghao.tnb.file.app.model.dto;
-
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @author reghao
- * @date 2024-03-07 16:26:52
- */
-@NoArgsConstructor
-@Setter
-@Getter
-public class ChannelProcessDto {
-    @NotNull
-    private Integer id;
-    @NotNull
-    private Boolean seturl;
-}

+ 0 - 12
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/CreateDir.java

@@ -1,12 +0,0 @@
-package cn.reghao.tnb.file.app.model.dto;
-
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2024-04-17 09:06:05
- */
-@Getter
-public class CreateDir {
-    private String dirPath;
-}

+ 0 - 19
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/CreateFolder.java

@@ -1,19 +0,0 @@
-package cn.reghao.tnb.file.app.model.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.NotBlank;
-
-/**
- * @author reghao
- * @date 2023-11-15 19:01:01
- */
-@Setter
-@Getter
-public class CreateFolder {
-    @NotBlank
-    private String parent;
-    @NotBlank
-    private String folderName;
-}

+ 5 - 2
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/KeyAuthDto.java

@@ -3,6 +3,7 @@ package cn.reghao.tnb.file.app.model.dto;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Size;
 
 /**
@@ -12,8 +13,10 @@ import javax.validation.constraints.Size;
 @Setter
 @Getter
 public class KeyAuthDto {
-    @Size(min = 8, max = 32, message = "accessKeyId 长度应在 8~32 个字符之间")
+    @NotBlank
+    @Size(min = 8, max = 8, message = "accessKeyId 长度应为 8 个字符")
     private String accessKeyId;
-    @Size(min = 8, max = 32, message = "accessKeySecret 长度应在 8~32 个字符之间")
+    @NotBlank
+    @Size(min = 20, max = 20, message = "accessKeySecret 长度应为 20 字符")
     private String accessKeySecret;
 }

+ 0 - 16
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/MoveFile.java

@@ -1,16 +0,0 @@
-package cn.reghao.tnb.file.app.model.dto;
-
-import lombok.Getter;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2023-12-24 00:39:18
- */
-@Getter
-public class MoveFile {
-    private Integer type;
-    private String pid;
-    private List<String> fileIds;
-}

+ 0 - 18
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/PathUrl.java

@@ -1,18 +0,0 @@
-package cn.reghao.tnb.file.app.model.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * 文件的本地路径和 URL
- *
- * @author reghao
- * @date 2022-04-26 15:10:04
- */
-@AllArgsConstructor
-@Getter
-public class PathUrl {
-    private String contentId;
-    // 本地文件路径
-    private String absolutePath;
-}

+ 0 - 19
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/RenameFile.java

@@ -1,19 +0,0 @@
-package cn.reghao.tnb.file.app.model.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.NotBlank;
-
-/**
- * @author reghao
- * @date 2023-11-15 19:18:39
- */
-@Setter
-@Getter
-public class RenameFile {
-    @NotBlank
-    private String fileId;
-    @NotBlank
-    private String newFilename;
-}

+ 0 - 17
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/SearchForm.java

@@ -1,17 +0,0 @@
-package cn.reghao.tnb.file.app.model.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2023-12-22 20:41:02
- */
-@Setter
-@Getter
-public class SearchForm {
-    private Integer page;
-    private String path;
-    private Integer fileType;
-    private String filename;
-}

+ 0 - 24
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/StoreConfigInfo.java

@@ -1,24 +0,0 @@
-package cn.reghao.tnb.file.app.model.dto;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2024-11-01 10:01:59
- */
-@AllArgsConstructor
-@Getter
-public class StoreConfigInfo implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private String ossTypeStr;
-    private String endpoint;
-    private String accessKeyId;
-    private String accessKeySecret;
-    private String region;
-    private String bucketName;
-    private String roleArn;
-}

+ 5 - 6
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/UploadChannelDto.java

@@ -10,6 +10,7 @@ import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
 
 /**
  * @author reghao
@@ -18,17 +19,15 @@ import javax.validation.constraints.Pattern;
 @Setter
 @Getter
 public class UploadChannelDto {
-    //@Pattern(regexp = "(^/)([^\\\\:*<>|\"?\\r\\n\\s/]+/)*([^\\\\:*<>|\"?\\r\\n\\s/]+)?$", message = "通道前缀不匹配")
     @Pattern(regexp = "([^\\\\:*<>|\"?\\r\\n\\s/]+/)*([^\\\\:*<>|\"?\\r\\n\\s/]+)/$", message = "通道前缀不匹配")
-    @NotNull
-    @Length(min = 2, max = 128, message = "通道前缀超过限制长度")
+    @Size(min = 2, max = 128, message = "通道前缀长度应在 2 ~ 128 个字符之间")
     private String channelPrefix;
     @NotNull
-    @Length(min = 2, max = 128, message = "通道名超过限制长度")
+    @Length(min = 2, max = 128, message = "通道名长度应在 2 ~ 128 个字符之间")
     private String channelName;
-    @ValidEnum(value = ObjectSize.class, message = "通道允许上传的对象大小不合法")
+    @ValidEnum(value = ObjectSize.class, message = "通道允许上传的文件大小不合法")
     private Long maxSize;
-    @ValidEnum(value = ObjectType.class, message = "通道允许上传的对象类型不合法")
+    @ValidEnum(value = ObjectType.class, message = "通道允许上传的文件类型不合法")
     private Integer objectType;
     @ValidEnum(value = ObjectScope.class, message = "通道作用域不合法")
     private Integer scope;

+ 0 - 30
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/UploadFileRet.java

@@ -1,30 +0,0 @@
-package cn.reghao.tnb.file.app.model.dto;
-
-import lombok.Getter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2023-05-23 11:11:32
- */
-@Getter
-public class UploadFileRet implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private final String uploadId;
-    private final String url;
-    private final boolean merged;
-
-    public UploadFileRet(String uploadId) {
-        this.uploadId = uploadId;
-        this.url = null;
-        this.merged = false;
-    }
-
-    public UploadFileRet(String uploadId, String url) {
-        this.uploadId = uploadId;
-        this.url = url;
-        this.merged = true;
-    }
-}

+ 0 - 23
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/UploadedFile.java

@@ -1,23 +0,0 @@
-package cn.reghao.tnb.file.app.model.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @author reghao
- * @date 2023-12-20 15:39:41
- */
-@Setter
-@Getter
-public class UploadedFile {
-    @NotNull
-    private MultipartFile file;
-    @NotNull
-    private Integer channelCode;
-    private String objectName;
-    private String client;
-    private String sha256sum;
-}

+ 0 - 2
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/UserNodeDto.java

@@ -3,7 +3,6 @@ package cn.reghao.tnb.file.app.model.dto;
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Size;
@@ -17,7 +16,6 @@ import javax.validation.constraints.Size;
 public class UserNodeDto {
     @NotNull
     private Integer storeNodeId;
-    @NotBlank
     @Pattern(regexp = "^[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}$", message = "域名格式不正确")
     @Size(max = 128, message = "域名长度应小于 128 个字符")
     private String domain;

+ 1 - 3
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/dto/UserNodeUpdateDto.java

@@ -3,7 +3,6 @@ package cn.reghao.tnb.file.app.model.dto;
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Size;
@@ -17,9 +16,8 @@ import javax.validation.constraints.Size;
 public class UserNodeUpdateDto {
     @NotNull
     private Integer userNodeId;
-    @NotBlank
     @Pattern(regexp = "^[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}$", message = "域名格式不正确")
-    @Size(min = 1, max = 128, message = "域名长度应小于 128 个字符")
+    @Size(max = 128, message = "域名长度应小于 128 个字符")
     private String domain;
     private String referer;
     private String secretKey;

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

@@ -6,7 +6,9 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
 
 /**
  * @author reghao
@@ -16,11 +18,14 @@ import javax.validation.constraints.NotNull;
 @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) {

+ 21 - 7
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/po/StoreVolume.java

@@ -7,6 +7,9 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
 /**
  * @author reghao
  * @date 2024-03-04 17:08:20
@@ -16,19 +19,31 @@ import lombok.Setter;
 @Setter
 @Getter
 public class StoreVolume extends BaseObject<Integer> {
-    private int storeNodeId;
+    @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;
-    private long totalSpace;
-    private long availSpace;
-    private long totalInode;
-    private long availInode;
-    private String storeDir;
+    @NotNull
+    private Long totalSpace;
+    @NotNull
+    private Long availSpace;
+    @NotNull
+    private Long totalInode;
+    @NotNull
+    private Long availInode;
 
     public StoreVolume(int storeNodeId, DiskVolume diskVolume) {
+        this.storeDir = diskVolume.getStoreDir();
         this.storeNodeId = storeNodeId;
         this.name = diskVolume.getName();
         this.volume = diskVolume.getVolume();
@@ -39,6 +54,5 @@ public class StoreVolume extends BaseObject<Integer> {
         this.availSpace = diskVolume.getAvailSpace();
         this.totalInode = diskVolume.getTotalInode();
         this.availInode = diskVolume.getAvailInode();
-        this.storeDir = diskVolume.getStoreDir();
     }
 }

+ 20 - 7
file/file-service/src/main/java/cn/reghao/tnb/file/app/model/po/UploadChannel.java

@@ -7,6 +7,9 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
 /**
  * @author reghao
  * @date 2024-02-23 15:05:30
@@ -15,40 +18,50 @@ import lombok.Setter;
 @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;
-    private Boolean seturl;
+    @NotNull
     private Integer scope;
+    @NotNull
+    private Boolean seturl;
+    @NotNull
     private Boolean enabled;
-    private Integer userNodeId;
+    @NotNull
     private Integer createBy;
 
-    public UploadChannel(int channelCode, UploadChannelDto uploadChannelDto, int createBy) {
+    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.userNodeId = uploadChannelDto.getUserNodeId();
-        this.createBy = createBy;
         this.seturl = 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.userNodeId = userNodeId;
-        this.createBy = ossUser;
         this.seturl = false;
         this.enabled = true;
+        this.createBy = ossUser;
     }
 }

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

@@ -6,6 +6,10 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
 /**
  * @author reghao
  * @date 2024-02-27 10:32:53
@@ -15,8 +19,13 @@ import lombok.Setter;
 @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) {

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

@@ -7,6 +7,10 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
 /**
  * @author reghao
  * @date 2024-02-27 09:45:11
@@ -16,10 +20,14 @@ import lombok.Setter;
 @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 secretKey;
     private String referer;
+    @NotNull
     private Integer createBy;
 
     public UserNode(UserNodeDto userNodeDto, int createBy) {

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

@@ -1,6 +1,5 @@
 package cn.reghao.tnb.file.app.model.vo;
 
-import cn.reghao.jutil.jdk.converter.DateTimeConverter;
 import cn.reghao.oss.api.constant.ObjectType;
 import cn.reghao.oss.api.dto.ObjectInfo;
 import lombok.AllArgsConstructor;

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

@@ -91,7 +91,7 @@ public class UserKeyService {
 
     private UserKey create(int ossUser) {
         String accessKeyId = RandomString.getString(8);
-        String accessKeySecret = RandomString.getString(18);
+        String accessKeySecret = RandomString.getString(20);
         UserKey userKey = new UserKey(accessKeyId, accessKeySecret, ossUser);
         userKeyMapper.save(userKey);
         return userKey;