diff --git a/ReadMe.md b/ReadMe.md
index 9f85406..414b7f4 100644
--- a/ReadMe.md
+++ b/ReadMe.md
@@ -128,7 +128,6 @@ http.authorizeHttpRequests(auth -> auth
graph TD
父工程 -->|主项目| auth-api
-父工程 -->|代码生成器| generator-code
auth-api -->|启动项、控制器| service
service -->|mapper| dao
service -->|包含domain、配置等| auth-core
diff --git a/auh-api/src/main/java/cn/bunny/services/AuthServiceApplication.java b/auh-api/src/main/java/cn/bunny/services/AuthServiceApplication.java
index e1635c1..a7bd896 100644
--- a/auh-api/src/main/java/cn/bunny/services/AuthServiceApplication.java
+++ b/auh-api/src/main/java/cn/bunny/services/AuthServiceApplication.java
@@ -1,5 +1,6 @@
package cn.bunny.services;
+import org.dromara.x.file.storage.spring.EnableFileStorage;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -11,6 +12,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@MapperScan("cn.bunny.services.mapper")
@ComponentScan("cn.bunny")
@EnableScheduling
+@EnableFileStorage
@EnableCaching
@EnableTransactionManagement
@SpringBootApplication
diff --git a/auh-api/src/main/java/cn/bunny/services/ReadMe.md b/auh-api/src/main/java/cn/bunny/services/ReadMe.md
index c55259d..6a6c8b1 100644
--- a/auh-api/src/main/java/cn/bunny/services/ReadMe.md
+++ b/auh-api/src/main/java/cn/bunny/services/ReadMe.md
@@ -1,4 +1,38 @@
-# 生成系统需要的权限
+# 文档包含配置和一些其他说明
+
+## 文件上传配置
+
+如果需要其他平台,需要参考文档:https://x-file-storage.xuyanwu.cn/#/。
+
+因为按照要求,删除、更新操作需要实现接口,所以目前的`FileRecorder`是实现了的,在`FileDetailService`。
+
+```yaml
+# 可以配置很多但只能使用一个!!!其他平台参考官方文档
+dromara:
+ x-file-storage: # 文件存储配置
+ default-platform: local-plus-1 # 默认使用的存储平台
+ # default-platform: minio-1 # 默认使用的存储平台
+ thumbnail-suffix: ".min.jpg" # 缩略图后缀,例如【.min.jpg】【.png】
+ local-plus:
+ - platform: local-plus-1 # 存储平台标识
+ enable-storage: true # 启用存储
+ enable-access: true # 启用访问(线上请使用 Nginx 配置,效率更高)
+ domain: ${dromara.local-plus.domain}
+ base-path: ${dromara.local-plus.base-path}
+ path-patterns: ${dromara.local-plus.path-patterns}
+ storage-path: ${dromara.local-plus.storage-path}
+ minio:
+ - platform: minio-1 # 存储平台标识
+ enable-storage: true # 启用存储
+ end-point: ${dromara.minio.endpointUrl}
+ domain: ${dromara.minio.endpointUrl}/${dromara.minio.bucket-name}
+ bucket-name: ${dromara.minio.bucket-name}
+ access-key: ${dromara.minio.accessKey}
+ secret-key: ${dromara.minio.secretKey}
+ base-path: ${dromara.minio.base-path}
+```
+
+## 生成系统需要的权限
```java
import cn.bunny.services.AuthServiceApplication;
@@ -77,4 +111,59 @@ public class BuildPermissionApiTest {
});
}
}
+```
+
+## MInio权限设置
+
+如果其他平台也需要,根据自己需求进行添加,不需要可以删除这个文件。
+
+```java
+/**
+ * 如果项目使用的是minio,创建桶的时候需要设置公开权限
+ * 在这里初始化的时候会自动设置公开权限
+ */
+@Configuration
+@ConditionalOnProperty(name = "dromara.x-file-storage.minio.bucket-name")
+@Data
+public class MinioConfiguration {
+
+ /* 地址 */
+ private String domain;
+ /* 访问秘钥 */
+ private String accessKey;
+ /* 私有秘钥 */
+ private String secretKey;
+ /* 桶名称 */
+ private String bucketName;
+
+ @Bean
+ public MinioClient minioClient() {
+ MinioClient minioClient = MinioClient.builder().endpoint(domain).credentials(accessKey, secretKey).build();
+
+ try {
+ // 判断桶是否存在,不存在则创建,并且可以有公开访问权限
+ boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
+ if (!found) {
+ minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
+ String publicPolicy = String.format("{\n" +
+ " \"Version\": \"2012-10-17\",\n" +
+ " \"Statement\": [\n" +
+ " {\n" +
+ " \"Effect\": \"Allow\",\n" +
+ " \"Principal\": \"*\",\n" +
+ " \"Action\": [\"s3:GetObject\"],\n" +
+ " \"Resource\": [\"arn:aws:s3:::%s/*\"]\n" +
+ " }\n" +
+ " ]\n" +
+ "}", bucketName);
+
+ minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucketName).config(publicPolicy).build());
+ }
+ } catch (Exception exception) {
+ exception.getStackTrace();
+ }
+
+ return minioClient;
+ }
+}
```
\ No newline at end of file
diff --git a/auh-api/src/main/java/cn/bunny/services/controller/system/FilesController.java b/auh-api/src/main/java/cn/bunny/services/controller/file/FilesController.java
similarity index 81%
rename from auh-api/src/main/java/cn/bunny/services/controller/system/FilesController.java
rename to auh-api/src/main/java/cn/bunny/services/controller/file/FilesController.java
index 064709d..21b58e8 100644
--- a/auh-api/src/main/java/cn/bunny/services/controller/system/FilesController.java
+++ b/auh-api/src/main/java/cn/bunny/services/controller/file/FilesController.java
@@ -1,17 +1,16 @@
-package cn.bunny.services.controller.system;
+package cn.bunny.services.controller.file;
-import cn.bunny.services.domain.common.constant.MinioConstant;
+import cn.bunny.services.domain.common.constant.FileStorageConstant;
import cn.bunny.services.domain.common.enums.ResultCodeEnum;
import cn.bunny.services.domain.common.model.vo.result.PageResult;
import cn.bunny.services.domain.common.model.vo.result.Result;
import cn.bunny.services.domain.system.files.dto.FileUploadDto;
-import cn.bunny.services.domain.system.files.dto.FilesAddDto;
+import cn.bunny.services.domain.system.files.dto.FilesAddOrUpdateDto;
import cn.bunny.services.domain.system.files.dto.FilesDto;
-import cn.bunny.services.domain.system.files.dto.FilesUpdateDto;
import cn.bunny.services.domain.system.files.entity.Files;
import cn.bunny.services.domain.system.files.vo.FileInfoVo;
import cn.bunny.services.domain.system.files.vo.FilesVo;
-import cn.bunny.services.service.system.FilesService;
+import cn.bunny.services.service.file.FilesService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -23,7 +22,6 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
-import java.util.Set;
/**
*
@@ -56,14 +54,14 @@ public class FilesController {
@Operation(summary = "更新文件", description = "更新系统文件", tags = "files::update")
@PutMapping()
- public Result updateFiles(@Valid FilesUpdateDto dto) {
+ public Result updateFiles(@Valid FilesAddOrUpdateDto dto) {
filesService.updateFiles(dto);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
}
@Operation(summary = "添加文件", description = "添加系统文件", tags = "files::add")
@PostMapping()
- public Result