From bdd83e0c60261e4458acfbfbf09ba5e792e9a2d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=B0=8F=E5=B9=B3?= Date: Sat, 25 May 2024 15:17:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=85=E7=BB=93=E6=9E=84=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 58 ++++++++++++++-- .../image/文件上传时序图.png | Bin .../image/文件下载时序图.png | Bin {minio-plus-doc => doc}/image/秒传时序图.png | Bin {minio-plus-doc => doc}/minio-s3-api.md | 0 .../controller/StorageController.java | 26 ++------ .../dao/MetadataRepositoryImpl.java | 8 +-- minio-plus-common/pom.xml | 19 ++++++ minio-plus-core/pom.xml | 15 +---- .../core/common/enums/StorageEngineEnums.java | 63 ------------------ .../core/engine/StorageEngineService.java | 10 +-- .../engine/impl/StorageEngineServiceImpl.java | 26 ++++---- .../core/repository/MetadataRepository.java | 8 +-- .../core/repository/MinioRepository.java | 2 +- .../repository/impl/MinioRepositoryImpl.java | 4 +- .../core/service/StorageService.java | 6 +- .../core/service/impl/StorageServiceImpl.java | 12 ++-- minio-plus-extension/pom.xml | 19 ++++++ minio-plus-model/pom.xml | 31 +++++++++ .../model}/bo/CreateUploadUrlReqBO.java | 2 +- .../model}/bo/CreateUploadUrlRespBO.java | 4 +- .../model}/copy/ListPartsResultCopy.java | 2 +- .../minioplus/model}/dto/FileCheckDTO.java | 2 +- .../minioplus/model}/dto/FileCompleteDTO.java | 2 +- .../model}/dto/FileMetadataInfoDTO.java | 2 +- .../model}/dto/FileMetadataInfoSaveDTO.java | 2 +- .../model}/dto/FileMetadataInfoUpdateDTO.java | 2 +- .../minioplus/model}/dto/FileSaveDTO.java | 2 +- .../dto/minio/MultipartUploadCreateDTO.java | 2 +- .../model}/enums/ResponseCodeEnum.java | 2 +- .../model}/enums/StorageBucketEnums.java | 2 +- .../minioplus/model}/vo/CompleteResultVo.java | 2 +- .../model}/vo/FileCheckResultVo.java | 2 +- .../model}/vo/FileMetadataInfoVo.java | 2 +- pom.xml | 18 +++++ 35 files changed, 198 insertions(+), 159 deletions(-) rename {minio-plus-doc => doc}/image/文件上传时序图.png (100%) rename {minio-plus-doc => doc}/image/文件下载时序图.png (100%) rename {minio-plus-doc => doc}/image/秒传时序图.png (100%) rename {minio-plus-doc => doc}/minio-s3-api.md (100%) create mode 100644 minio-plus-common/pom.xml delete mode 100644 minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/enums/StorageEngineEnums.java create mode 100644 minio-plus-extension/pom.xml create mode 100644 minio-plus-model/pom.xml rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/bo/CreateUploadUrlReqBO.java (96%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/bo/CreateUploadUrlRespBO.java (91%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/copy/ListPartsResultCopy.java (85%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/dto/FileCheckDTO.java (94%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/dto/FileCompleteDTO.java (91%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/dto/FileMetadataInfoDTO.java (96%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/dto/FileMetadataInfoSaveDTO.java (97%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/dto/FileMetadataInfoUpdateDTO.java (97%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/dto/FileSaveDTO.java (92%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/dto/minio/MultipartUploadCreateDTO.java (95%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/enums/ResponseCodeEnum.java (94%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/enums/StorageBucketEnums.java (98%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/vo/CompleteResultVo.java (93%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/vo/FileCheckResultVo.java (97%) rename {minio-plus-core/src/main/java/org/liuxp/minioplus/core/common => minio-plus-model/src/main/java/org/liuxp/minioplus/model}/vo/FileMetadataInfoVo.java (97%) diff --git a/README.md b/README.md index d4ccd01..ecbe628 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ ## 2.1 文件下载 | File Download -![文件下载逻辑时序图](minio-plus-doc/image/文件下载时序图.png) +![文件下载逻辑时序图](doc/image/文件下载时序图.png) 浏览器向服务端发起文件读取请求,服务端会根据fileKey入参取得文件的元数据信息。获取文件元数据信息后,根据元数据信息中的是否私有字段和所有者字段判断是否具备文件读取权限。 @@ -42,7 +42,7 @@ ### 2.2.1 秒传 -![秒传时序图](minio-plus-doc/image/秒传时序图.png) +![秒传时序图](doc/image/秒传时序图.png) 当用户重复上传相同的文件时,每次都需要执行一次完整的文件上传操作,这造成了文件上传过程的冗余,即浪费了用户的时间和服务器的网络IO,重复文件又占用了不必要的服务器磁盘空间。 针对以上两个问题,minio-plus支持文件秒传特性,解决了传统文件上传中重复文件上传时的问题,提高了文件传输的效率和用户体验,同时减少了文件服务器的存储空间占用。 @@ -58,7 +58,7 @@ * 提高传输速度:当上传的文件比较大时,将大文件进行分块,同时并发上传多个小块,而不是一整个大文件按顺序上传。这样可以最大限度地利用带宽,从而加快上传速度。 * 支持断点续传:分块上传是断点续传技术的前置条件,要想实现断点续传,必须先支持分块。 -![文件上传时序图](minio-plus-doc/image/文件上传时序图.png) +![文件上传时序图](doc/image/文件上传时序图.png) ### 2.2.3 断点续传 @@ -114,15 +114,58 @@ PS:原图尺寸小于缩略图压缩尺寸时,储存原图。 # 3 接口设计 | Interface Design -## 3.1 文件检查 +## 3.1 Service 层接口(Core) -## 3.2 +提供标准文件上传、下载等接口。 + +### 3.1.1 创建文件(字节数组、流、url) + +### 3.1.2 读取文件 + +### 3.1.3 删除文件 + +## 3.2 Controller 层接口(扩展) + +如没有特殊需求,也可以不写 Controller 层接口,MinIO Plus 扩展包中提供了 Controller 层接口定义。 + +### 3.2.1 文件预检查 + +### 3.2.2 文件上传(MinIO原生接口) + +### 3.2.3 上传完成 + +### 3.2.4 文件下载 + +### 3.2.5 图片预览 - 原图 + +### 3.2.6 图片预览 - 缩略图 + +## 3.3 引用 MinIO 接口 + +这里给出本项目引用的 MinIO 接口列表。 + +### 3.3.1 bucketExists 检查文件桶是否存在 + +### 3.3.2 makeBucket 创建文件桶 + +### 3.3.3 createMultipartUpload 创建分片上传 + +### 3.3.4 completeMultipartUpload 合并文件 + +### 3.3.5 listParts 查询已上传的分片列表 + +### 3.3.6 getPresignedObjectUrl 获取上传、下载、预览图链接 + +### 3.3.7 putObject 上传 + +### 3.3.8 getObject 下载 + +### 3.3.9 removeObject 删除 # 4 数据库设计 | Database Design ## 4.1 文件元数据信息表 | file_metadata_info - | Name | Type | Length | Not Null | Virtual | Key | Comment | | ---------------- | ---------- | -------- | ---------- | --------- | ------ | ------------------------ | | id | bigint | 20 | True | False | True | 自增ID | @@ -188,4 +231,5 @@ CREATE TABLE `file_metadata_info` ( # 9 参考资料 | Reference -* [MinIO S3 APIs](minio-plus-doc/minio-s3-api.md) +* [MinIO S3 APIs](doc/minio-s3-api.md) + diff --git a/minio-plus-doc/image/文件上传时序图.png b/doc/image/文件上传时序图.png similarity index 100% rename from minio-plus-doc/image/文件上传时序图.png rename to doc/image/文件上传时序图.png diff --git a/minio-plus-doc/image/文件下载时序图.png b/doc/image/文件下载时序图.png similarity index 100% rename from minio-plus-doc/image/文件下载时序图.png rename to doc/image/文件下载时序图.png diff --git a/minio-plus-doc/image/秒传时序图.png b/doc/image/秒传时序图.png similarity index 100% rename from minio-plus-doc/image/秒传时序图.png rename to doc/image/秒传时序图.png diff --git a/minio-plus-doc/minio-s3-api.md b/doc/minio-s3-api.md similarity index 100% rename from minio-plus-doc/minio-s3-api.md rename to doc/minio-s3-api.md diff --git a/minio-plus-application/minio-plus-application-mysql/src/main/java/org/liuxp/minioplus/application/controller/StorageController.java b/minio-plus-application/minio-plus-application-mysql/src/main/java/org/liuxp/minioplus/application/controller/StorageController.java index a8e6038..5eb1fb6 100644 --- a/minio-plus-application/minio-plus-application-mysql/src/main/java/org/liuxp/minioplus/application/controller/StorageController.java +++ b/minio-plus-application/minio-plus-application-mysql/src/main/java/org/liuxp/minioplus/application/controller/StorageController.java @@ -7,10 +7,10 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.liuxp.minioplus.application.context.Response; import org.liuxp.minioplus.config.MinioPlusProperties; -import org.liuxp.minioplus.core.common.dto.FileCheckDTO; -import org.liuxp.minioplus.core.common.dto.FileCompleteDTO; -import org.liuxp.minioplus.core.common.vo.CompleteResultVo; -import org.liuxp.minioplus.core.common.vo.FileCheckResultVo; +import org.liuxp.minioplus.model.dto.FileCheckDTO; +import org.liuxp.minioplus.model.dto.FileCompleteDTO; +import org.liuxp.minioplus.model.vo.CompleteResultVo; +import org.liuxp.minioplus.model.vo.FileCheckResultVo; import org.liuxp.minioplus.core.engine.StorageEngineService; import org.springframework.stereotype.Controller; import org.springframework.validation.annotation.Validated; @@ -144,24 +144,6 @@ public class StorageController { return REDIRECT_PREFIX + remakeUrl(url); } - /** - * 文件删除 - * @param fileKey 文件KEY - * @return 文件下载地址 - */ - @ApiOperation(value = "文件删除") - @PostMapping("/remove/{fileKey}") - @ResponseBody - public Response remove(@PathVariable String fileKey) { - - // 取得当前登录用户信息 - String userId = "mockUser"; - // 取得文件读取路径 - Boolean remove = storageEngineService.remove(fileKey, userId); - // 返回重定向地址 - return Response.success(remove); - } - /** * 图片原图预览 * @param fileKey 文件KEY diff --git a/minio-plus-application/minio-plus-application-mysql/src/main/java/org/liuxp/minioplus/application/dao/MetadataRepositoryImpl.java b/minio-plus-application/minio-plus-application-mysql/src/main/java/org/liuxp/minioplus/application/dao/MetadataRepositoryImpl.java index 63865ac..7e27117 100644 --- a/minio-plus-application/minio-plus-application-mysql/src/main/java/org/liuxp/minioplus/application/dao/MetadataRepositoryImpl.java +++ b/minio-plus-application/minio-plus-application-mysql/src/main/java/org/liuxp/minioplus/application/dao/MetadataRepositoryImpl.java @@ -7,10 +7,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.liuxp.minioplus.application.entity.FileMetadataInfoEntity; import org.liuxp.minioplus.application.mapper.FileMetadataInfoMapper; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoDTO; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoSaveDTO; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoUpdateDTO; -import org.liuxp.minioplus.core.common.vo.FileMetadataInfoVo; +import org.liuxp.minioplus.model.dto.FileMetadataInfoDTO; +import org.liuxp.minioplus.model.dto.FileMetadataInfoSaveDTO; +import org.liuxp.minioplus.model.dto.FileMetadataInfoUpdateDTO; +import org.liuxp.minioplus.model.vo.FileMetadataInfoVo; import org.liuxp.minioplus.core.repository.MetadataRepository; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; diff --git a/minio-plus-common/pom.xml b/minio-plus-common/pom.xml new file mode 100644 index 0000000..40c03ce --- /dev/null +++ b/minio-plus-common/pom.xml @@ -0,0 +1,19 @@ + + + + minio-plus-parent + org.liuxp + 1.0.0-SNAPSHOT + + 4.0.0 + + minio-plus-common + + + 11 + 11 + + + \ No newline at end of file diff --git a/minio-plus-core/pom.xml b/minio-plus-core/pom.xml index 1fa2bc3..5b463ee 100644 --- a/minio-plus-core/pom.xml +++ b/minio-plus-core/pom.xml @@ -10,17 +10,12 @@ 4.0.0 minio-plus-core - ${revision} org.springframework.boot spring-boot-starter - - cn.hutool - hutool-all - io.minio @@ -41,15 +36,9 @@ org.liuxp minio-plus-spring-boot-config - - com.github.xiaoymin - knife4j-annotations - - - - io.swagger - swagger-annotations + org.liuxp + minio-plus-model diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/enums/StorageEngineEnums.java b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/enums/StorageEngineEnums.java deleted file mode 100644 index dd42c33..0000000 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/enums/StorageEngineEnums.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.liuxp.minioplus.core.common.enums; - -import lombok.Getter; - -/** - * 存储引擎枚举类 - * - * @author contact@liuxp.me - * @since 2023/06/26 - */ -@Getter -public enum StorageEngineEnums { - - /** - * 存储引擎枚举 - */ - MINIO("minio","MinIO存储引擎"), - LOCAL("local","本地文件存储"), - TIS("tis","TIS存储引擎"); - - private final String code; - - private final String name; - - /** - * 构造方法 - * @param code 编码 - * @param name 名称 - */ - StorageEngineEnums(String code, String name) { - this.code = code; - this.name = name; - } - - /** - * 根据编码取得枚举 - * @param code 编码 - * @return 枚举 - */ - public static StorageEngineEnums getByCode(String code) { - for (StorageEngineEnums fileDomain : StorageEngineEnums.values()) { - if (code.equals(fileDomain.getCode())) { - return fileDomain; - } - } - return null; - } - - /** - * 根据编码取得名称 - * @param code 编码 - * @return 名称 - */ - public static String getNameByCode(String code) { - for (StorageEngineEnums fileDomain : StorageEngineEnums.values()) { - if (code.equals(fileDomain.getCode())) { - return fileDomain.getName(); - } - } - return ""; - } - -} diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/StorageEngineService.java b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/StorageEngineService.java index de2539d..f76b99a 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/StorageEngineService.java +++ b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/StorageEngineService.java @@ -1,11 +1,11 @@ package org.liuxp.minioplus.core.engine; import cn.hutool.core.lang.Pair; -import org.liuxp.minioplus.core.common.dto.FileCheckDTO; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoSaveDTO; -import org.liuxp.minioplus.core.common.vo.CompleteResultVo; -import org.liuxp.minioplus.core.common.vo.FileCheckResultVo; -import org.liuxp.minioplus.core.common.vo.FileMetadataInfoVo; +import org.liuxp.minioplus.model.dto.FileCheckDTO; +import org.liuxp.minioplus.model.dto.FileMetadataInfoSaveDTO; +import org.liuxp.minioplus.model.vo.CompleteResultVo; +import org.liuxp.minioplus.model.vo.FileCheckResultVo; +import org.liuxp.minioplus.model.vo.FileMetadataInfoVo; import java.util.List; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/impl/StorageEngineServiceImpl.java b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/impl/StorageEngineServiceImpl.java index c14aa5f..2470b02 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/impl/StorageEngineServiceImpl.java +++ b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/engine/impl/StorageEngineServiceImpl.java @@ -11,21 +11,21 @@ import io.minio.ObjectWriteResponse; import io.minio.messages.Part; import lombok.extern.slf4j.Slf4j; import org.liuxp.minioplus.config.MinioPlusProperties; -import org.liuxp.minioplus.core.common.bo.CreateUploadUrlReqBO; -import org.liuxp.minioplus.core.common.bo.CreateUploadUrlRespBO; -import org.liuxp.minioplus.core.common.copy.ListPartsResultCopy; -import org.liuxp.minioplus.core.common.dto.FileCheckDTO; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoDTO; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoSaveDTO; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoUpdateDTO; -import org.liuxp.minioplus.core.common.dto.minio.MultipartUploadCreateDTO; -import org.liuxp.minioplus.core.common.enums.ResponseCodeEnum; -import org.liuxp.minioplus.core.common.enums.StorageBucketEnums; +import org.liuxp.minioplus.model.bo.CreateUploadUrlReqBO; +import org.liuxp.minioplus.model.bo.CreateUploadUrlRespBO; +import org.liuxp.minioplus.model.copy.ListPartsResultCopy; +import org.liuxp.minioplus.model.dto.FileCheckDTO; +import org.liuxp.minioplus.model.dto.FileMetadataInfoDTO; +import org.liuxp.minioplus.model.dto.FileMetadataInfoSaveDTO; +import org.liuxp.minioplus.model.dto.FileMetadataInfoUpdateDTO; +import org.liuxp.minioplus.model.dto.minio.MultipartUploadCreateDTO; +import org.liuxp.minioplus.model.enums.ResponseCodeEnum; +import org.liuxp.minioplus.model.enums.StorageBucketEnums; import org.liuxp.minioplus.core.common.exception.MinioPlusBusinessException; import org.liuxp.minioplus.core.common.utils.MinioPlusCommonUtil; -import org.liuxp.minioplus.core.common.vo.CompleteResultVo; -import org.liuxp.minioplus.core.common.vo.FileCheckResultVo; -import org.liuxp.minioplus.core.common.vo.FileMetadataInfoVo; +import org.liuxp.minioplus.model.vo.CompleteResultVo; +import org.liuxp.minioplus.model.vo.FileCheckResultVo; +import org.liuxp.minioplus.model.vo.FileMetadataInfoVo; import org.liuxp.minioplus.core.engine.StorageEngineService; import org.liuxp.minioplus.core.repository.MetadataRepository; import org.liuxp.minioplus.core.repository.MinioRepository; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/MetadataRepository.java b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/MetadataRepository.java index ea452ec..5f075f7 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/MetadataRepository.java +++ b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/MetadataRepository.java @@ -1,9 +1,9 @@ package org.liuxp.minioplus.core.repository; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoDTO; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoSaveDTO; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoUpdateDTO; -import org.liuxp.minioplus.core.common.vo.FileMetadataInfoVo; +import org.liuxp.minioplus.model.dto.FileMetadataInfoDTO; +import org.liuxp.minioplus.model.dto.FileMetadataInfoSaveDTO; +import org.liuxp.minioplus.model.dto.FileMetadataInfoUpdateDTO; +import org.liuxp.minioplus.model.vo.FileMetadataInfoVo; import java.util.List; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/MinioRepository.java b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/MinioRepository.java index c9e17cf..445be9e 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/MinioRepository.java +++ b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/MinioRepository.java @@ -3,7 +3,7 @@ package org.liuxp.minioplus.core.repository; import io.minio.CreateMultipartUploadResponse; import io.minio.ListPartsResponse; import io.minio.ObjectWriteResponse; -import org.liuxp.minioplus.core.common.dto.minio.MultipartUploadCreateDTO; +import org.liuxp.minioplus.model.dto.minio.MultipartUploadCreateDTO; import org.liuxp.minioplus.core.repository.impl.CustomMinioClient; import java.io.InputStream; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/impl/MinioRepositoryImpl.java b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/impl/MinioRepositoryImpl.java index ef858f2..9d1962c 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/impl/MinioRepositoryImpl.java +++ b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/repository/impl/MinioRepositoryImpl.java @@ -6,8 +6,8 @@ import io.minio.http.Method; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.liuxp.minioplus.config.MinioPlusProperties; -import org.liuxp.minioplus.core.common.dto.minio.MultipartUploadCreateDTO; -import org.liuxp.minioplus.core.common.enums.ResponseCodeEnum; +import org.liuxp.minioplus.model.dto.minio.MultipartUploadCreateDTO; +import org.liuxp.minioplus.model.enums.ResponseCodeEnum; import org.liuxp.minioplus.core.common.exception.MinioPlusBusinessException; import org.liuxp.minioplus.core.repository.MinioRepository; import org.springframework.stereotype.Repository; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/service/StorageService.java b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/service/StorageService.java index 5957777..83037f7 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/service/StorageService.java +++ b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/service/StorageService.java @@ -1,9 +1,9 @@ package org.liuxp.minioplus.core.service; import cn.hutool.core.lang.Pair; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoDTO; -import org.liuxp.minioplus.core.common.dto.FileSaveDTO; -import org.liuxp.minioplus.core.common.vo.FileMetadataInfoVo; +import org.liuxp.minioplus.model.dto.FileMetadataInfoDTO; +import org.liuxp.minioplus.model.dto.FileSaveDTO; +import org.liuxp.minioplus.model.vo.FileMetadataInfoVo; import java.io.InputStream; import java.util.List; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/service/impl/StorageServiceImpl.java b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/service/impl/StorageServiceImpl.java index 8d1a1e2..66d9604 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/service/impl/StorageServiceImpl.java +++ b/minio-plus-core/src/main/java/org/liuxp/minioplus/core/service/impl/StorageServiceImpl.java @@ -9,15 +9,15 @@ import cn.hutool.crypto.SecureUtil; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import org.liuxp.minioplus.config.MinioPlusProperties; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoDTO; -import org.liuxp.minioplus.core.common.dto.FileMetadataInfoSaveDTO; -import org.liuxp.minioplus.core.common.dto.FileSaveDTO; -import org.liuxp.minioplus.core.common.enums.ResponseCodeEnum; -import org.liuxp.minioplus.core.common.enums.StorageBucketEnums; +import org.liuxp.minioplus.model.dto.FileMetadataInfoDTO; +import org.liuxp.minioplus.model.dto.FileMetadataInfoSaveDTO; +import org.liuxp.minioplus.model.dto.FileSaveDTO; +import org.liuxp.minioplus.model.enums.ResponseCodeEnum; +import org.liuxp.minioplus.model.enums.StorageBucketEnums; import org.liuxp.minioplus.core.common.exception.MinioPlusBusinessException; import org.liuxp.minioplus.core.common.utils.ContentTypeUtil; import org.liuxp.minioplus.core.common.utils.MinioPlusCommonUtil; -import org.liuxp.minioplus.core.common.vo.FileMetadataInfoVo; +import org.liuxp.minioplus.model.vo.FileMetadataInfoVo; import org.liuxp.minioplus.core.engine.StorageEngineService; import org.liuxp.minioplus.core.repository.MetadataRepository; import org.liuxp.minioplus.core.service.StorageService; diff --git a/minio-plus-extension/pom.xml b/minio-plus-extension/pom.xml new file mode 100644 index 0000000..6bdac2e --- /dev/null +++ b/minio-plus-extension/pom.xml @@ -0,0 +1,19 @@ + + + + minio-plus-parent + org.liuxp + 1.0.0-SNAPSHOT + + 4.0.0 + + minio-plus-extension + + + 11 + 11 + + + \ No newline at end of file diff --git a/minio-plus-model/pom.xml b/minio-plus-model/pom.xml new file mode 100644 index 0000000..f275e46 --- /dev/null +++ b/minio-plus-model/pom.xml @@ -0,0 +1,31 @@ + + + + minio-plus-parent + org.liuxp + ${revision} + + 4.0.0 + + minio-plus-model + + + + cn.hutool + hutool-all + + + + com.github.xiaoymin + knife4j-annotations + + + + io.swagger + swagger-annotations + + + + \ No newline at end of file diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/bo/CreateUploadUrlReqBO.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/bo/CreateUploadUrlReqBO.java similarity index 96% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/bo/CreateUploadUrlReqBO.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/bo/CreateUploadUrlReqBO.java index 6350098..a66ae8d 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/bo/CreateUploadUrlReqBO.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/bo/CreateUploadUrlReqBO.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.bo; +package org.liuxp.minioplus.model.bo; import lombok.Getter; import lombok.Setter; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/bo/CreateUploadUrlRespBO.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/bo/CreateUploadUrlRespBO.java similarity index 91% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/bo/CreateUploadUrlRespBO.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/bo/CreateUploadUrlRespBO.java index f8ea347..ed15a6c 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/bo/CreateUploadUrlRespBO.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/bo/CreateUploadUrlRespBO.java @@ -1,9 +1,9 @@ -package org.liuxp.minioplus.core.common.bo; +package org.liuxp.minioplus.model.bo; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import org.liuxp.minioplus.core.common.vo.FileCheckResultVo; +import org.liuxp.minioplus.model.vo.FileCheckResultVo; import java.util.List; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/copy/ListPartsResultCopy.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/copy/ListPartsResultCopy.java similarity index 85% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/copy/ListPartsResultCopy.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/copy/ListPartsResultCopy.java index 2f6345c..4df05de 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/copy/ListPartsResultCopy.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/copy/ListPartsResultCopy.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.copy; +package org.liuxp.minioplus.model.copy; import io.minio.messages.ListPartsResult; import io.minio.messages.Part; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileCheckDTO.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileCheckDTO.java similarity index 94% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileCheckDTO.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileCheckDTO.java index 728ebae..cbbac92 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileCheckDTO.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileCheckDTO.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.dto; +package org.liuxp.minioplus.model.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileCompleteDTO.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileCompleteDTO.java similarity index 91% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileCompleteDTO.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileCompleteDTO.java index cef7000..8484316 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileCompleteDTO.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileCompleteDTO.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.dto; +package org.liuxp.minioplus.model.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileMetadataInfoDTO.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileMetadataInfoDTO.java similarity index 96% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileMetadataInfoDTO.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileMetadataInfoDTO.java index d161f77..485c1aa 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileMetadataInfoDTO.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileMetadataInfoDTO.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.dto; +package org.liuxp.minioplus.model.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileMetadataInfoSaveDTO.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileMetadataInfoSaveDTO.java similarity index 97% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileMetadataInfoSaveDTO.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileMetadataInfoSaveDTO.java index eee193b..8ee46a9 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileMetadataInfoSaveDTO.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileMetadataInfoSaveDTO.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.dto; +package org.liuxp.minioplus.model.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileMetadataInfoUpdateDTO.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileMetadataInfoUpdateDTO.java similarity index 97% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileMetadataInfoUpdateDTO.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileMetadataInfoUpdateDTO.java index 2e34fdb..62abc2d 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileMetadataInfoUpdateDTO.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileMetadataInfoUpdateDTO.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.dto; +package org.liuxp.minioplus.model.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileSaveDTO.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileSaveDTO.java similarity index 92% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileSaveDTO.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileSaveDTO.java index 17e3c1d..0169c5a 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/FileSaveDTO.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/FileSaveDTO.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.dto; +package org.liuxp.minioplus.model.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/minio/MultipartUploadCreateDTO.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/minio/MultipartUploadCreateDTO.java similarity index 95% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/minio/MultipartUploadCreateDTO.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/minio/MultipartUploadCreateDTO.java index 1df529c..e7786ca 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/dto/minio/MultipartUploadCreateDTO.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/dto/minio/MultipartUploadCreateDTO.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.dto.minio; +package org.liuxp.minioplus.model.dto.minio; import com.google.common.collect.Multimap; import io.minio.messages.Part; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/enums/ResponseCodeEnum.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/enums/ResponseCodeEnum.java similarity index 94% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/enums/ResponseCodeEnum.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/enums/ResponseCodeEnum.java index 521d144..5880135 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/enums/ResponseCodeEnum.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/enums/ResponseCodeEnum.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.enums; +package org.liuxp.minioplus.model.enums; /** * 返回给前端的code编码对应内容的枚举 diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/enums/StorageBucketEnums.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/enums/StorageBucketEnums.java similarity index 98% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/enums/StorageBucketEnums.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/enums/StorageBucketEnums.java index d6f4578..b36e9e8 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/enums/StorageBucketEnums.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/enums/StorageBucketEnums.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.enums; +package org.liuxp.minioplus.model.enums; import cn.hutool.core.util.ArrayUtil; import lombok.Getter; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/vo/CompleteResultVo.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/vo/CompleteResultVo.java similarity index 93% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/vo/CompleteResultVo.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/vo/CompleteResultVo.java index 4e4bf6e..1978a43 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/vo/CompleteResultVo.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/vo/CompleteResultVo.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.vo; +package org.liuxp.minioplus.model.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/vo/FileCheckResultVo.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/vo/FileCheckResultVo.java similarity index 97% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/vo/FileCheckResultVo.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/vo/FileCheckResultVo.java index b3a7168..f776509 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/vo/FileCheckResultVo.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/vo/FileCheckResultVo.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.vo; +package org.liuxp.minioplus.model.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/vo/FileMetadataInfoVo.java b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/vo/FileMetadataInfoVo.java similarity index 97% rename from minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/vo/FileMetadataInfoVo.java rename to minio-plus-model/src/main/java/org/liuxp/minioplus/model/vo/FileMetadataInfoVo.java index 87540f6..8285a6b 100644 --- a/minio-plus-core/src/main/java/org/liuxp/minioplus/core/common/vo/FileMetadataInfoVo.java +++ b/minio-plus-model/src/main/java/org/liuxp/minioplus/model/vo/FileMetadataInfoVo.java @@ -1,4 +1,4 @@ -package org.liuxp.minioplus.core.common.vo; +package org.liuxp.minioplus.model.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/pom.xml b/pom.xml index f7b3ba9..e8cc0d1 100644 --- a/pom.xml +++ b/pom.xml @@ -39,6 +39,9 @@ minio-plus-spring-boot-config minio-plus-spring-boot-starter minio-plus-application + minio-plus-model + minio-plus-common + minio-plus-extension @@ -133,11 +136,26 @@ thumbnailator ${thumbnailator.version} + + org.liuxp + minio-plus-common + ${revision} + org.liuxp minio-plus-core ${revision} + + org.liuxp + minio-plus-extension + ${revision} + + + org.liuxp + minio-plus-model + ${revision} + org.liuxp minio-plus-spring-boot-config