commit ca54a752e25a2d6db8e6465c9f1e3b3e1aa5d7ad
Author: 张腾 <3467447354@qq.com>
Date: Fri Jul 26 01:45:28 2024 +0800
初始化
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..63b509c
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..ee2c34b
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..3d4444c
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..67e1e61
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..483b2a3
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,19 @@
+#指定构建镜像的起始镜像
+FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/dragonwell:17.0.4.0.4.8-standard-ga-8.6
+
+#定义时区参数
+ENV TZ=Asia/Shanghai
+
+#执行一些必备的条件
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
+
+#挂载
+VOLUME ["/home/logs/cloud-file","/home/uploadPath"]
+
+#拷贝执行jar包文件
+COPY ./target/cloud-modules-file.jar /home/app.jar
+
+#构建启动命令
+ENTRYPOINT ["java","-jar"]
+CMD ["/home/app.jar"]
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..efb3d45
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,91 @@
+
+
+
+ com.muyu
+ cloud-modules
+ 3.6.3
+
+ 4.0.0
+
+ cloud-modules-file
+
+
+ cloud-modules-file文件服务
+
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ io.minio
+ minio
+ ${minio.version}
+
+
+
+
+ com.muyu
+ cloud-common-system
+
+
+
+
+ com.muyu
+ cloud-common-api-doc
+
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+
+ true
+
+
+
+
+
+
diff --git a/src/main/java/com/muyu/file/CloudFileApplication.java b/src/main/java/com/muyu/file/CloudFileApplication.java
new file mode 100644
index 0000000..4e1c628
--- /dev/null
+++ b/src/main/java/com/muyu/file/CloudFileApplication.java
@@ -0,0 +1,17 @@
+package com.muyu.file;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+
+/**
+ * 文件服务
+ *
+ * @author muyu
+ */
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
+public class CloudFileApplication {
+ public static void main (String[] args) {
+ SpringApplication.run(CloudFileApplication.class, args);
+ }
+}
diff --git a/src/main/java/com/muyu/file/config/MinioConfig.java b/src/main/java/com/muyu/file/config/MinioConfig.java
new file mode 100644
index 0000000..af8c1bb
--- /dev/null
+++ b/src/main/java/com/muyu/file/config/MinioConfig.java
@@ -0,0 +1,72 @@
+package com.muyu.file.config;
+
+import io.minio.MinioClient;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Minio 配置信息
+ *
+ * @author muyu
+ */
+@Configuration
+@ConfigurationProperties(prefix = "minio")
+public class MinioConfig {
+ /**
+ * 服务地址
+ */
+ private String url;
+
+ /**
+ * 用户名
+ */
+ private String accessKey;
+
+ /**
+ * 密码
+ */
+ private String secretKey;
+
+ /**
+ * 存储桶名称
+ */
+ private String bucketName;
+
+ public String getUrl () {
+ return url;
+ }
+
+ public void setUrl (String url) {
+ this.url = url;
+ }
+
+ public String getAccessKey () {
+ return accessKey;
+ }
+
+ public void setAccessKey (String accessKey) {
+ this.accessKey = accessKey;
+ }
+
+ public String getSecretKey () {
+ return secretKey;
+ }
+
+ public void setSecretKey (String secretKey) {
+ this.secretKey = secretKey;
+ }
+
+ public String getBucketName () {
+ return bucketName;
+ }
+
+ public void setBucketName (String bucketName) {
+ this.bucketName = bucketName;
+ }
+
+ @Bean
+ public MinioClient getMinioClient () {
+ return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();
+ }
+}
diff --git a/src/main/java/com/muyu/file/config/ResourcesConfig.java b/src/main/java/com/muyu/file/config/ResourcesConfig.java
new file mode 100644
index 0000000..78a8be0
--- /dev/null
+++ b/src/main/java/com/muyu/file/config/ResourcesConfig.java
@@ -0,0 +1,48 @@
+package com.muyu.file.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.io.File;
+
+/**
+ * 通用映射配置
+ *
+ * @author muyu
+ */
+@Configuration
+public class ResourcesConfig implements WebMvcConfigurer {
+ /**
+ * 资源映射路径 前缀
+ */
+ @Value("${file.prefix}")
+ public String localFilePrefix;
+ /**
+ * 上传文件存储在本地的根路径
+ */
+ @Value("${file.path}")
+ private String localFilePath;
+
+ @Override
+ public void addResourceHandlers (ResourceHandlerRegistry registry) {
+ /** 本地文件上传路径 */
+ registry.addResourceHandler(localFilePrefix + "/**")
+ .addResourceLocations("file:" + localFilePath + File.separator);
+ }
+
+ /**
+ * 开启跨域
+ */
+ @Override
+ public void addCorsMappings (CorsRegistry registry) {
+ // 设置允许跨域的路由
+ registry.addMapping(localFilePrefix + "/**")
+ // 设置允许跨域请求的域名
+ .allowedOrigins("*")
+ // 设置允许的方法
+ .allowedMethods("GET");
+ }
+}
diff --git a/src/main/java/com/muyu/file/controller/SysFileController.java b/src/main/java/com/muyu/file/controller/SysFileController.java
new file mode 100644
index 0000000..ed04d11
--- /dev/null
+++ b/src/main/java/com/muyu/file/controller/SysFileController.java
@@ -0,0 +1,44 @@
+package com.muyu.file.controller;
+
+import com.muyu.common.core.domain.Result;
+import com.muyu.common.core.utils.file.FileUtils;
+import com.muyu.file.service.ISysFileService;
+import com.muyu.common.system.domain.SysFile;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 文件请求处理
+ *
+ * @author muyu
+ */
+@RestController
+public class SysFileController {
+ private static final Logger log = LoggerFactory.getLogger(SysFileController.class);
+
+ @Autowired
+ private ISysFileService sysFileService;
+
+ /**
+ * 文件上传请求
+ */
+ @PostMapping("/upload")
+ public Result upload (@RequestPart(value = "file") MultipartFile file) {
+ try {
+ // 上传并返回访问地址
+ String url = sysFileService.uploadFile(file);
+ SysFile sysFile = new SysFile();
+ sysFile.setName(FileUtils.getName(url));
+ sysFile.setUrl(url);
+ return Result.success(sysFile);
+ } catch (Exception e) {
+ log.error("上传文件失败", e);
+ return Result.error(e.getMessage());
+ }
+ }
+}
diff --git a/src/main/java/com/muyu/file/service/ISysFileService.java b/src/main/java/com/muyu/file/service/ISysFileService.java
new file mode 100644
index 0000000..416c26c
--- /dev/null
+++ b/src/main/java/com/muyu/file/service/ISysFileService.java
@@ -0,0 +1,21 @@
+package com.muyu.file.service;
+
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 文件上传接口
+ *
+ * @author muyu
+ */
+public interface ISysFileService {
+ /**
+ * 文件上传接口
+ *
+ * @param file 上传的文件
+ *
+ * @return 访问地址
+ *
+ * @throws Exception
+ */
+ public String uploadFile (MultipartFile file) throws Exception;
+}
diff --git a/src/main/java/com/muyu/file/service/LocalSysFileServiceImpl.java b/src/main/java/com/muyu/file/service/LocalSysFileServiceImpl.java
new file mode 100644
index 0000000..f3ce089
--- /dev/null
+++ b/src/main/java/com/muyu/file/service/LocalSysFileServiceImpl.java
@@ -0,0 +1,50 @@
+package com.muyu.file.service;
+
+import com.muyu.file.utils.FileUploadUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 本地文件存储
+ *
+ * @author muyu
+ */
+@Primary
+@Service
+public class LocalSysFileServiceImpl implements ISysFileService {
+ /**
+ * 资源映射路径 前缀
+ */
+ @Value("${file.prefix}")
+ public String localFilePrefix;
+
+ /**
+ * 域名或本机访问地址
+ */
+ @Value("${file.domain}")
+ public String domain;
+
+ /**
+ * 上传文件存储在本地的根路径
+ */
+ @Value("${file.path}")
+ private String localFilePath;
+
+ /**
+ * 本地文件上传接口
+ *
+ * @param file 上传的文件
+ *
+ * @return 访问地址
+ *
+ * @throws Exception
+ */
+ @Override
+ public String uploadFile (MultipartFile file) throws Exception {
+ String name = FileUploadUtils.upload(localFilePath, file);
+ String url = domain + localFilePrefix + name;
+ return url;
+ }
+}
diff --git a/src/main/java/com/muyu/file/service/MinioSysFileServiceImpl.java b/src/main/java/com/muyu/file/service/MinioSysFileServiceImpl.java
new file mode 100644
index 0000000..9a50de4
--- /dev/null
+++ b/src/main/java/com/muyu/file/service/MinioSysFileServiceImpl.java
@@ -0,0 +1,50 @@
+package com.muyu.file.service;
+
+import com.alibaba.nacos.common.utils.IoUtils;
+import com.muyu.file.config.MinioConfig;
+import com.muyu.file.utils.FileUploadUtils;
+import io.minio.MinioClient;
+import io.minio.PutObjectArgs;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+
+/**
+ * Minio 文件存储
+ *
+ * @author muyu
+ */
+@Service
+public class MinioSysFileServiceImpl implements ISysFileService {
+ @Autowired
+ private MinioConfig minioConfig;
+
+ @Autowired
+ private MinioClient client;
+
+ /**
+ * Minio文件上传接口
+ *
+ * @param file 上传的文件
+ *
+ * @return 访问地址
+ *
+ * @throws Exception
+ */
+ @Override
+ public String uploadFile (MultipartFile file) throws Exception {
+ String fileName = FileUploadUtils.extractFilename(file);
+ InputStream inputStream = file.getInputStream();
+ PutObjectArgs args = PutObjectArgs.builder()
+ .bucket(minioConfig.getBucketName())
+ .object(fileName)
+ .stream(inputStream, file.getSize(), -1)
+ .contentType(file.getContentType())
+ .build();
+ client.putObject(args);
+ IoUtils.closeQuietly(inputStream);
+ return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
+ }
+}
diff --git a/src/main/java/com/muyu/file/utils/FileUploadUtils.java b/src/main/java/com/muyu/file/utils/FileUploadUtils.java
new file mode 100644
index 0000000..0a48cbf
--- /dev/null
+++ b/src/main/java/com/muyu/file/utils/FileUploadUtils.java
@@ -0,0 +1,163 @@
+package com.muyu.file.utils;
+
+import com.muyu.common.core.exception.file.FileException;
+import com.muyu.common.core.exception.file.FileNameLengthLimitExceededException;
+import com.muyu.common.core.exception.file.FileSizeLimitExceededException;
+import com.muyu.common.core.exception.file.InvalidExtensionException;
+import com.muyu.common.core.utils.DateUtils;
+import com.muyu.common.core.utils.StringUtils;
+import com.muyu.common.core.utils.file.FileTypeUtils;
+import com.muyu.common.core.utils.file.MimeTypeUtils;
+import com.muyu.common.core.utils.uuid.Seq;
+import org.apache.commons.io.FilenameUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Paths;
+import java.util.Objects;
+
+/**
+ * 文件上传工具类
+ *
+ * @author muyu
+ */
+public class FileUploadUtils {
+ /**
+ * 默认大小 50M
+ */
+ public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024;
+
+ /**
+ * 默认的文件名最大长度 100
+ */
+ public static final int DEFAULT_FILE_NAME_LENGTH = 100;
+
+ /**
+ * 根据文件路径上传
+ *
+ * @param baseDir 相对应用的基目录
+ * @param file 上传的文件
+ *
+ * @return 文件名称
+ *
+ * @throws IOException
+ */
+ public static final String upload (String baseDir, MultipartFile file) throws IOException {
+ try {
+ return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+ } catch (FileException fe) {
+ throw new IOException(fe.getDefaultMessage(), fe);
+ } catch (Exception e) {
+ throw new IOException(e.getMessage(), e);
+ }
+ }
+
+ /**
+ * 文件上传
+ *
+ * @param baseDir 相对应用的基目录
+ * @param file 上传的文件
+ * @param allowedExtension 上传文件类型
+ *
+ * @return 返回上传成功的文件名
+ *
+ * @throws FileSizeLimitExceededException 如果超出最大大小
+ * @throws FileNameLengthLimitExceededException 文件名太长
+ * @throws IOException 比如读写文件出错时
+ * @throws InvalidExtensionException 文件校验异常
+ */
+ public static final String upload (String baseDir, MultipartFile file, String[] allowedExtension)
+ throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException,
+ InvalidExtensionException {
+ int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length();
+ if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) {
+ throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
+ }
+
+ assertAllowed(file, allowedExtension);
+
+ String fileName = extractFilename(file);
+
+ String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath();
+ file.transferTo(Paths.get(absPath));
+ return getPathFileName(fileName);
+ }
+
+ /**
+ * 编码文件名
+ */
+ public static final String extractFilename (MultipartFile file) {
+ return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(),
+ FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), FileTypeUtils.getExtension(file));
+ }
+
+ private static final File getAbsoluteFile (String uploadDir, String fileName) throws IOException {
+ File desc = new File(uploadDir + File.separator + fileName);
+
+ if (!desc.exists()) {
+ if (!desc.getParentFile().exists()) {
+ desc.getParentFile().mkdirs();
+ }
+ }
+ return desc.isAbsolute() ? desc : desc.getAbsoluteFile();
+ }
+
+ private static final String getPathFileName (String fileName) throws IOException {
+ String pathFileName = "/" + fileName;
+ return pathFileName;
+ }
+
+ /**
+ * 文件大小校验
+ *
+ * @param file 上传的文件
+ *
+ * @throws FileSizeLimitExceededException 如果超出最大大小
+ * @throws InvalidExtensionException 文件校验异常
+ */
+ public static final void assertAllowed (MultipartFile file, String[] allowedExtension)
+ throws FileSizeLimitExceededException, InvalidExtensionException {
+ long size = file.getSize();
+ if (size > DEFAULT_MAX_SIZE) {
+ throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024);
+ }
+
+ String fileName = file.getOriginalFilename();
+ String extension = FileTypeUtils.getExtension(file);
+ if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension)) {
+ if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION) {
+ throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension,
+ fileName);
+ } else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION) {
+ throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension,
+ fileName);
+ } else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION) {
+ throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension,
+ fileName);
+ } else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) {
+ throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension,
+ fileName);
+ } else {
+ throw new InvalidExtensionException(allowedExtension, extension, fileName);
+ }
+ }
+ }
+
+ /**
+ * 判断MIME类型是否是允许的MIME类型
+ *
+ * @param extension 上传文件类型
+ * @param allowedExtension 允许上传文件类型
+ *
+ * @return true/false
+ */
+ public static final boolean isAllowedExtension (String extension, String[] allowedExtension) {
+ for (String str : allowedExtension) {
+ if (str.equalsIgnoreCase(extension)) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt
new file mode 100644
index 0000000..0dd5eee
--- /dev/null
+++ b/src/main/resources/banner.txt
@@ -0,0 +1,2 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..9d81922
--- /dev/null
+++ b/src/main/resources/bootstrap.yml
@@ -0,0 +1,47 @@
+# Tomcat
+server:
+ port: 9300
+
+# nacos线上地址
+nacos:
+ addr: 106.15.36.123:8848
+ user-name: nacos
+ password: nacos
+ namespace: 3cc549bc-5e87-4246-a701-7a1edd9b5433
+
+# Spring
+spring:
+ application:
+ # 应用名称
+ name: cloud-file
+ profiles:
+ # 环境配置
+ active: dev
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: ${nacos.addr}
+ # nacos用户名
+ username: ${nacos.user-name}
+ # nacos密码
+ password: ${nacos.password}
+ # 命名空间
+ namespace: ${nacos.namespace}
+ config:
+ # 服务注册地址
+ server-addr: ${nacos.addr}
+ # nacos用户名
+ username: ${nacos.user-name}
+ # nacos密码
+ password: ${nacos.password}
+ # 命名空间
+ namespace: ${nacos.namespace}
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ # 系统共享配置
+ - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+ # 系统环境Config共享配置
+ - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
diff --git a/src/main/resources/logback/dev.xml b/src/main/resources/logback/dev.xml
new file mode 100644
index 0000000..30606f7
--- /dev/null
+++ b/src/main/resources/logback/dev.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/logback/prod.xml b/src/main/resources/logback/prod.xml
new file mode 100644
index 0000000..151a3cb
--- /dev/null
+++ b/src/main/resources/logback/prod.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/logback/test.xml b/src/main/resources/logback/test.xml
new file mode 100644
index 0000000..151a3cb
--- /dev/null
+++ b/src/main/resources/logback/test.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/target/classes/banner.txt b/target/classes/banner.txt
new file mode 100644
index 0000000..0dd5eee
--- /dev/null
+++ b/target/classes/banner.txt
@@ -0,0 +1,2 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
diff --git a/target/classes/bootstrap.yml b/target/classes/bootstrap.yml
new file mode 100644
index 0000000..9d81922
--- /dev/null
+++ b/target/classes/bootstrap.yml
@@ -0,0 +1,47 @@
+# Tomcat
+server:
+ port: 9300
+
+# nacos线上地址
+nacos:
+ addr: 106.15.36.123:8848
+ user-name: nacos
+ password: nacos
+ namespace: 3cc549bc-5e87-4246-a701-7a1edd9b5433
+
+# Spring
+spring:
+ application:
+ # 应用名称
+ name: cloud-file
+ profiles:
+ # 环境配置
+ active: dev
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: ${nacos.addr}
+ # nacos用户名
+ username: ${nacos.user-name}
+ # nacos密码
+ password: ${nacos.password}
+ # 命名空间
+ namespace: ${nacos.namespace}
+ config:
+ # 服务注册地址
+ server-addr: ${nacos.addr}
+ # nacos用户名
+ username: ${nacos.user-name}
+ # nacos密码
+ password: ${nacos.password}
+ # 命名空间
+ namespace: ${nacos.namespace}
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ # 系统共享配置
+ - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+ # 系统环境Config共享配置
+ - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
diff --git a/target/classes/com/muyu/file/CloudFileApplication.class b/target/classes/com/muyu/file/CloudFileApplication.class
new file mode 100644
index 0000000..40a09ee
Binary files /dev/null and b/target/classes/com/muyu/file/CloudFileApplication.class differ
diff --git a/target/classes/com/muyu/file/config/MinioConfig.class b/target/classes/com/muyu/file/config/MinioConfig.class
new file mode 100644
index 0000000..72a6551
Binary files /dev/null and b/target/classes/com/muyu/file/config/MinioConfig.class differ
diff --git a/target/classes/com/muyu/file/config/ResourcesConfig.class b/target/classes/com/muyu/file/config/ResourcesConfig.class
new file mode 100644
index 0000000..579424e
Binary files /dev/null and b/target/classes/com/muyu/file/config/ResourcesConfig.class differ
diff --git a/target/classes/com/muyu/file/controller/SysFileController.class b/target/classes/com/muyu/file/controller/SysFileController.class
new file mode 100644
index 0000000..f852fd9
Binary files /dev/null and b/target/classes/com/muyu/file/controller/SysFileController.class differ
diff --git a/target/classes/com/muyu/file/service/ISysFileService.class b/target/classes/com/muyu/file/service/ISysFileService.class
new file mode 100644
index 0000000..acf5722
Binary files /dev/null and b/target/classes/com/muyu/file/service/ISysFileService.class differ
diff --git a/target/classes/com/muyu/file/service/LocalSysFileServiceImpl.class b/target/classes/com/muyu/file/service/LocalSysFileServiceImpl.class
new file mode 100644
index 0000000..92e8f5b
Binary files /dev/null and b/target/classes/com/muyu/file/service/LocalSysFileServiceImpl.class differ
diff --git a/target/classes/com/muyu/file/service/MinioSysFileServiceImpl.class b/target/classes/com/muyu/file/service/MinioSysFileServiceImpl.class
new file mode 100644
index 0000000..5619ced
Binary files /dev/null and b/target/classes/com/muyu/file/service/MinioSysFileServiceImpl.class differ
diff --git a/target/classes/com/muyu/file/utils/FileUploadUtils.class b/target/classes/com/muyu/file/utils/FileUploadUtils.class
new file mode 100644
index 0000000..21df2c1
Binary files /dev/null and b/target/classes/com/muyu/file/utils/FileUploadUtils.class differ
diff --git a/target/classes/logback/dev.xml b/target/classes/logback/dev.xml
new file mode 100644
index 0000000..30606f7
--- /dev/null
+++ b/target/classes/logback/dev.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/target/classes/logback/prod.xml b/target/classes/logback/prod.xml
new file mode 100644
index 0000000..151a3cb
--- /dev/null
+++ b/target/classes/logback/prod.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/target/classes/logback/test.xml b/target/classes/logback/test.xml
new file mode 100644
index 0000000..151a3cb
--- /dev/null
+++ b/target/classes/logback/test.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+ ${log.sky.pattern}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/target/cloud-modules-file.jar b/target/cloud-modules-file.jar
new file mode 100644
index 0000000..727e244
Binary files /dev/null and b/target/cloud-modules-file.jar differ
diff --git a/target/cloud-modules-file.jar.original b/target/cloud-modules-file.jar.original
new file mode 100644
index 0000000..c0a21ff
Binary files /dev/null and b/target/cloud-modules-file.jar.original differ
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..e9c1eb6
--- /dev/null
+++ b/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=cloud-modules-file
+groupId=com.muyu
+version=3.6.3
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..088090e
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,8 @@
+com\muyu\file\CloudFileApplication.class
+com\muyu\file\service\MinioSysFileServiceImpl.class
+com\muyu\file\controller\SysFileController.class
+com\muyu\file\service\ISysFileService.class
+com\muyu\file\utils\FileUploadUtils.class
+com\muyu\file\service\LocalSysFileServiceImpl.class
+com\muyu\file\config\MinioConfig.class
+com\muyu\file\config\ResourcesConfig.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..13c0499
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,8 @@
+D:\专高6\专高6\zy-cloud\cloud-modules-file\src\main\java\com\muyu\file\CloudFileApplication.java
+D:\专高6\专高6\zy-cloud\cloud-modules-file\src\main\java\com\muyu\file\config\MinioConfig.java
+D:\专高6\专高6\zy-cloud\cloud-modules-file\src\main\java\com\muyu\file\config\ResourcesConfig.java
+D:\专高6\专高6\zy-cloud\cloud-modules-file\src\main\java\com\muyu\file\controller\SysFileController.java
+D:\专高6\专高6\zy-cloud\cloud-modules-file\src\main\java\com\muyu\file\service\ISysFileService.java
+D:\专高6\专高6\zy-cloud\cloud-modules-file\src\main\java\com\muyu\file\service\LocalSysFileServiceImpl.java
+D:\专高6\专高6\zy-cloud\cloud-modules-file\src\main\java\com\muyu\file\service\MinioSysFileServiceImpl.java
+D:\专高6\专高6\zy-cloud\cloud-modules-file\src\main\java\com\muyu\file\utils\FileUploadUtils.java