diff --git a/jc-club-oss/pom.xml b/jc-club-oss/pom.xml
new file mode 100644
index 0000000..b49e121
--- /dev/null
+++ b/jc-club-oss/pom.xml
@@ -0,0 +1,128 @@
+
+ 4.0.0
+
+ com.landaiqing
+ jc-club-oss
+ 1.0-SNAPSHOT
+ jar
+
+ jc-club-oss
+ http://maven.apache.org
+
+
+
+ 8
+ 8
+ 1.8
+ UTF-8
+ UTF-8
+ 2.4.2
+ 2021.1
+ 2020.0.6
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ spring-boot-starter-logging
+ org.springframework.boot
+
+
+
+
+ io.minio
+ minio
+ 8.2.0
+
+
+ org.projectlombok
+ lombok
+ 1.18.20
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-log4j2
+
+
+ org.springframework.cloud
+ spring-cloud-starter-bootstrap
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring-cloud.version}
+ pom
+ import
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot.version}
+ pom
+ import
+
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-dependencies
+ ${spring-cloud-alibaba.version}
+ pom
+ import
+
+
+
+
+
+ ${project.artifactId}
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.3.0.RELEASE
+
+
+
+ repackage
+
+
+
+
+
+
+
+
+
+ central
+ aliyun maven
+ http://maven.aliyun.com/nexus/content/groups/public/
+ default
+
+ true
+
+
+ true
+
+
+
+
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/OssApplication.java b/jc-club-oss/src/main/java/com/landaiqing/oss/OssApplication.java
new file mode 100644
index 0000000..9f8bd4a
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/OssApplication.java
@@ -0,0 +1,20 @@
+package com.landaiqing.oss;
+
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
+
+/**
+ * oss 服务启动类
+ *
+ * @author: landaiqing
+ * @date: 2024/2/17
+ */
+@SpringBootApplication
+@ComponentScan("com.landaiqing")
+public class OssApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(OssApplication.class);
+ }
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/adapter/AliStorageAdapter.java b/jc-club-oss/src/main/java/com/landaiqing/oss/adapter/AliStorageAdapter.java
new file mode 100644
index 0000000..249125c
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/adapter/AliStorageAdapter.java
@@ -0,0 +1,58 @@
+package com.landaiqing.oss.adapter;
+
+import com.landaiqing.oss.entity.FileInfo;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * @Classname AliStorageServiceImpl
+ * @BelongsProject: jc-club
+ * @BelongsPackage: com.landaiqing.oss.service.impl
+ * @Author: landaiqing
+ * @CreateTime: 2024-02-17 16:55
+ * @Description: TODO
+ * @Version: 1.0
+ */
+public class AliStorageAdapter implements StorageAdapter {
+ @Override
+ public void createBucket(String bucket) {
+
+ }
+
+ @Override
+ public void uploadFile(MultipartFile uploadFile, String bucket, String objectName) {
+
+ }
+
+ @Override
+ public List getAllBucket() {
+ System.out.println("aliyun");
+ return null;
+ }
+
+ @Override
+ public List getAllFile(String bucket) {
+ return null;
+ }
+
+ @Override
+ public InputStream download(String bucket, String objectName) {
+ return null;
+ }
+
+ @Override
+ public void deleteBucket(String bucket) {
+
+ }
+
+ @Override
+ public void deleteObject(String bucket, String objectName) {
+
+ }
+ @Override
+ public String getUrl(String bucket, String objectName) {
+ return null;
+ }
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/adapter/MinioStorageAdapter.java b/jc-club-oss/src/main/java/com/landaiqing/oss/adapter/MinioStorageAdapter.java
new file mode 100644
index 0000000..1fba04d
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/adapter/MinioStorageAdapter.java
@@ -0,0 +1,85 @@
+package com.landaiqing.oss.adapter;
+
+import com.landaiqing.oss.entity.FileInfo;
+import com.landaiqing.oss.util.MinioUtil;
+import lombok.SneakyThrows;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * @Classname MinioStorageServiceImpl
+ * @BelongsProject: jc-club
+ * @BelongsPackage: com.landaiqing.oss.service.impl
+ * @Author: landaiqing
+ * @CreateTime: 2024-02-17 16:35
+ * @Description: TODO
+ * @Version: 1.0
+ */
+public class MinioStorageAdapter implements StorageAdapter {
+ @Resource
+ private MinioUtil minioUtil;
+
+ /**
+ * minioUrl
+ */
+ @Value("${minio.url}")
+ private String url;
+
+ @Override
+ @SneakyThrows
+ public void createBucket(String bucket) {
+ minioUtil.createBucket(bucket);
+ }
+
+ @Override
+ @SneakyThrows
+ public void uploadFile(MultipartFile uploadFile, String bucket, String objectName) {
+ minioUtil.createBucket(bucket);
+ if (objectName != null) {
+ minioUtil.uploadFile(uploadFile.getInputStream(), bucket, objectName + "/" + uploadFile.getName());
+ } else {
+ minioUtil.uploadFile(uploadFile.getInputStream(), bucket, uploadFile.getName());
+ }
+ }
+
+ @Override
+ @SneakyThrows
+ public List getAllBucket() {
+ return minioUtil.getAllBucket();
+ }
+
+ @Override
+ @SneakyThrows
+ public List getAllFile(String bucket) {
+ return minioUtil.getAllFile(bucket);
+ }
+
+ @Override
+ @SneakyThrows
+ public InputStream download(String bucket, String objectName) {
+ return minioUtil.download(bucket, objectName);
+ }
+
+ @Override
+ @SneakyThrows
+ public void deleteBucket(String bucket) {
+ minioUtil.deleteBucket(bucket);
+ }
+
+ @Override
+ @SneakyThrows
+ public void deleteObject(String bucket, String objectName) {
+ minioUtil.deleteObject(bucket, objectName);
+ }
+
+ @Override
+ @SneakyThrows
+ public String getUrl(String bucket, String objectName) {
+ return url + "/" + bucket + "/" + objectName;
+ }
+
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/adapter/StorageAdapter.java b/jc-club-oss/src/main/java/com/landaiqing/oss/adapter/StorageAdapter.java
new file mode 100644
index 0000000..f04bdf8
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/adapter/StorageAdapter.java
@@ -0,0 +1,83 @@
+package com.landaiqing.oss.adapter;
+
+import com.landaiqing.oss.entity.FileInfo;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * @Classname StorageService
+ * @BelongsProject: jc-club
+ * @BelongsPackage: com.landaiqing.oss.service
+ * @Author: landaiqing
+ * @CreateTime: 2024-02-17 16:32
+ * @Description: 文件存储适配器
+ * @Version: 1.0
+ */
+public interface StorageAdapter {
+ /**
+ * @description: 创建Bucket桶
+ * @param: [bucket]
+ * @return: void
+ * @author landaiqing
+ * @date: 2024/2/17 15:53
+ */
+ void createBucket(String bucket);
+
+ /**
+ * @description: 上传文件
+ * @param: [inputStream, bucket, objectName]
+ * @return: void
+ * @author landaiqing
+ * @date: 2024/2/17 15:58
+ */
+ void uploadFile(MultipartFile uploadFile, String bucket, String objectName);
+
+ /**
+ * @description: 列出所有桶
+ * @param: []
+ * @return: java.util.List
+ * @author landaiqing
+ * @date: 2024/2/17 16:00
+ */
+ List getAllBucket();
+
+ /**
+ * @description: 列出当前桶及文件
+ * @param: [bucket]
+ * @return: java.util.List
+ * @author landaiqing
+ * @date: 2024/2/17 16:06
+ */
+ List getAllFile(String bucket);
+
+ /**
+ * @description: 下载文件
+ * @param: [bucket, objectName]
+ * @return: java.io.InputStream
+ * @author landaiqing
+ * @date: 2024/2/17 16:11
+ */
+ InputStream download(String bucket, String objectName);
+
+ /**
+ * @description: 删除桶
+ * @param: [bucket]
+ * @return: void
+ * @author landaiqing
+ * @date: 2024/2/17 16:14
+ */
+ void deleteBucket(String bucket);
+
+ /**
+ * @description: 删除文件
+ * @param: [bucket, objectName]
+ * @return: void
+ * @author landaiqing
+ * @date: 2024/2/17 16:14
+ */
+ void deleteObject(String bucket, String objectName);
+
+ String getUrl(String bucket, String objectName);
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/config/MinioConfig.java b/jc-club-oss/src/main/java/com/landaiqing/oss/config/MinioConfig.java
new file mode 100644
index 0000000..b670970
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/config/MinioConfig.java
@@ -0,0 +1,43 @@
+package com.landaiqing.oss.config;
+
+import io.minio.MinioClient;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Classname MinioConfig
+ * @BelongsProject: jc-club
+ * @BelongsPackage: com.landaiqing.oss.config
+ * @Author: landaiqing
+ * @CreateTime: 2024-02-17 15:44
+ * @Description: Minio配置管理
+ * @Version: 1.0
+ */
+@Configuration
+public class MinioConfig {
+ /**
+ * minioUrl
+ */
+ @Value("${minio.url}")
+ private String url;
+ /**
+ * minio账户
+ */
+ @Value("${minio.accessKey}")
+ private String accessKey;
+ /**
+ * minio密码
+ */
+ @Value("${minio.secretKey}")
+ private String secretKey;
+
+ /**
+ * 构造minioClient
+ */
+ @Bean
+ public MinioClient getMinioClient(){
+ return MinioClient.builder().endpoint(url).credentials(accessKey,secretKey ).build();
+ }
+
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/config/StorageConfig.java b/jc-club-oss/src/main/java/com/landaiqing/oss/config/StorageConfig.java
new file mode 100644
index 0000000..2ee77b6
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/config/StorageConfig.java
@@ -0,0 +1,39 @@
+package com.landaiqing.oss.config;
+
+import com.landaiqing.oss.adapter.StorageAdapter;
+import com.landaiqing.oss.adapter.AliStorageAdapter;
+import com.landaiqing.oss.adapter.MinioStorageAdapter;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Classname StorageConfig
+ * @BelongsProject: jc-club
+ * @BelongsPackage: com.landaiqing.oss.config
+ * @Author: landaiqing
+ * @CreateTime: 2024-02-17 16:52
+ * @Description: TODO
+ * @Version: 1.0
+ */
+@Configuration
+@RefreshScope
+public class StorageConfig {
+ @Value("${storage.service.type}")
+ private String storageType;
+
+
+ @Bean
+ @RefreshScope
+ public StorageAdapter storageService(){
+ if ("minio".equals(storageType)) {
+ return new MinioStorageAdapter();
+ } else if ("aliyun".equals(storageType)) {
+ return new AliStorageAdapter();
+ } else {
+ throw new IllegalArgumentException("未找到对应的文件处理");
+ }
+ }
+
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/controller/FileController.java b/jc-club-oss/src/main/java/com/landaiqing/oss/controller/FileController.java
new file mode 100644
index 0000000..49c6084
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/controller/FileController.java
@@ -0,0 +1,45 @@
+package com.landaiqing.oss.controller;
+
+import com.landaiqing.oss.entity.Result;
+import com.landaiqing.oss.service.FileService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Classname FileController
+ * @BelongsProject: jc-club
+ * @BelongsPackage: com.landaiqing.oss.controller
+ * @Author: landaiqing
+ * @CreateTime: 2024-02-17 16:18
+ * @Description: TODO
+ * @Version: 1.0
+ */
+@RestController
+public class FileController {
+ @Resource
+ private FileService fileService;
+
+ @RequestMapping("/testGetAllBuckets")
+ public String testGetAllBuckets() throws Exception {
+ List allBucket = fileService.getAllBucket();
+ return allBucket.get(0);
+ }
+
+ @RequestMapping("/getUrl")
+ public String getUrl(String bucketName, String objectName) throws Exception {
+ return fileService.getUrl(bucketName, objectName);
+ }
+
+ /**
+ * 上传文件
+ */
+ @RequestMapping("/upload")
+ public Result upload(MultipartFile uploadFile, String bucket, String objectName) throws Exception {
+ String url = fileService.uploadFile(uploadFile, bucket, objectName);
+ return Result.ok(url);
+ }
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/entity/FileInfo.java b/jc-club-oss/src/main/java/com/landaiqing/oss/entity/FileInfo.java
new file mode 100644
index 0000000..d516b9f
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/entity/FileInfo.java
@@ -0,0 +1,42 @@
+package com.landaiqing.oss.entity;
+
+/**
+ * @Classname FileInfo
+ * @BelongsProject: jc-club
+ * @BelongsPackage: com.landaiqing.oss.entity
+ * @Author: landaiqing
+ * @CreateTime: 2024-02-17 16:04
+ * @Description: 文件类
+ * @Version: 1.0
+ */
+public class FileInfo {
+
+
+ private String fileName;
+ private Boolean directoryFlag;
+ private String etag;
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public Boolean getDirectoryFlag() {
+ return directoryFlag;
+ }
+
+ public void setDirectoryFlag(Boolean directoryFlag) {
+ this.directoryFlag = directoryFlag;
+ }
+
+ public String getEtag() {
+ return etag;
+ }
+
+ public void setEtag(String etag) {
+ this.etag = etag;
+ }
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/entity/Result.java b/jc-club-oss/src/main/java/com/landaiqing/oss/entity/Result.java
new file mode 100644
index 0000000..bbe701e
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/entity/Result.java
@@ -0,0 +1,50 @@
+package com.landaiqing.oss.entity;
+
+import lombok.Data;
+
+@Data
+public class Result {
+
+ private Boolean success;
+
+ private Integer code;
+
+ private String message;
+
+ private T data;
+
+ public static Result ok(){
+ Result result = new Result();
+ result.setSuccess(true);
+ result.setCode(ResultCodeEnum.SUCCESS.getCode());
+ result.setMessage(ResultCodeEnum.SUCCESS.getDesc());
+ return result;
+ }
+
+ public static Result ok(T data){
+ Result result = new Result();
+ result.setSuccess(true);
+ result.setCode(ResultCodeEnum.SUCCESS.getCode());
+ result.setMessage(ResultCodeEnum.SUCCESS.getDesc());
+ result.setData(data);
+ return result;
+ }
+
+ public static Result fail(){
+ Result result = new Result();
+ result.setSuccess(false);
+ result.setCode(ResultCodeEnum.FAIL.getCode());
+ result.setMessage(ResultCodeEnum.FAIL.getDesc());
+ return result;
+ }
+
+ public static Result fail(T data){
+ Result result = new Result();
+ result.setSuccess(false);
+ result.setCode(ResultCodeEnum.FAIL.getCode());
+ result.setMessage(ResultCodeEnum.FAIL.getDesc());
+ result.setData(data);
+ return result;
+ }
+
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/entity/ResultCodeEnum.java b/jc-club-oss/src/main/java/com/landaiqing/oss/entity/ResultCodeEnum.java
new file mode 100644
index 0000000..91d14f1
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/entity/ResultCodeEnum.java
@@ -0,0 +1,29 @@
+package com.landaiqing.oss.entity;
+
+import lombok.Getter;
+
+@Getter
+public enum ResultCodeEnum {
+
+ SUCCESS(200,"成功"),
+ FAIL(500,"失败");
+
+ public int code;
+
+ public String desc;
+
+ ResultCodeEnum(int code,String desc){
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public static ResultCodeEnum getByCode(int codeVal){
+ for(ResultCodeEnum resultCodeEnum : ResultCodeEnum.values()){
+ if(resultCodeEnum.code == codeVal){
+ return resultCodeEnum;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/service/FileService.java b/jc-club-oss/src/main/java/com/landaiqing/oss/service/FileService.java
new file mode 100644
index 0000000..de35bd5
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/service/FileService.java
@@ -0,0 +1,49 @@
+package com.landaiqing.oss.service;
+
+import com.landaiqing.oss.adapter.StorageAdapter;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * @Classname FileService
+ * @BelongsProject: jc-club
+ * @BelongsPackage: com.landaiqing.oss.service
+ * @Author: landaiqing
+ * @CreateTime: 2024-02-17 16:50
+ * @Description: TODO
+ * @Version: 1.0
+ */
+@Service
+public class FileService {
+ private final StorageAdapter storageAdapter;
+
+ public FileService(StorageAdapter storageAdapter) {
+ this.storageAdapter = storageAdapter;
+ }
+
+
+ /**
+ * 列出所有桶
+ */
+ public List getAllBucket() {
+ return storageAdapter.getAllBucket();
+ }
+
+ /**
+ * 获取文件路径
+ */
+ public String getUrl(String bucketName,String objectName) {
+ return storageAdapter.getUrl(bucketName,objectName);
+ }
+
+ /**
+ * 上传文件
+ */
+ public String uploadFile(MultipartFile uploadFile, String bucket, String objectName){
+ storageAdapter.uploadFile(uploadFile,bucket,objectName);
+ objectName = objectName + "/" + uploadFile.getOriginalFilename();
+ return storageAdapter.getUrl(bucket, objectName);
+ }
+}
diff --git a/jc-club-oss/src/main/java/com/landaiqing/oss/util/MinioUtil.java b/jc-club-oss/src/main/java/com/landaiqing/oss/util/MinioUtil.java
new file mode 100644
index 0000000..44b10f9
--- /dev/null
+++ b/jc-club-oss/src/main/java/com/landaiqing/oss/util/MinioUtil.java
@@ -0,0 +1,126 @@
+package com.landaiqing.oss.util;
+
+import com.landaiqing.oss.entity.FileInfo;
+import io.minio.*;
+import io.minio.errors.*;
+import io.minio.messages.Bucket;
+import io.minio.messages.Item;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Classname MinioUtil
+ * @BelongsProject: jc-club
+ * @BelongsPackage: com.landaiqing.oss.util
+ * @Author: landaiqing
+ * @CreateTime: 2024-02-17 15:50
+ * @Description: minio文件操作工具
+ * @Version: 1.0
+ */
+@Component
+public class MinioUtil {
+ @Resource
+ private MinioClient minioClient;
+
+ /**
+ * @description: 创建Bucket桶
+ * @param: [bucket]
+ * @return: void
+ * @author landaiqing
+ * @date: 2024/2/17 15:53
+ */
+ public void createBucket(String bucket) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
+ boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucket).build());
+ if (!exists) {
+ minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());
+ }
+ }
+
+ /**
+ * @description: 上传文件
+ * @param: [inputStream, bucket, objectName]
+ * @return: void
+ * @author landaiqing
+ * @date: 2024/2/17 15:58
+ */
+ public void uploadFile(InputStream inputStream, String bucket, String objectName) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
+ minioClient.putObject(PutObjectArgs.builder().bucket(bucket).object(objectName)
+ .stream(inputStream, -1, Integer.MAX_VALUE).build());
+ }
+
+ /**
+ * @description: 列出所有桶
+ * @param: []
+ * @return: java.util.List
+ * @author landaiqing
+ * @date: 2024/2/17 16:00
+ */
+ public List getAllBucket() throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
+ List buckets = minioClient.listBuckets();
+ return buckets.stream().map(Bucket::name).collect(Collectors.toList());
+ }
+
+ /**
+ * @description: 列出当前桶及文件
+ * @param: [bucket]
+ * @return: java.util.List
+ * @author landaiqing
+ * @date: 2024/2/17 16:06
+ */
+ public List getAllFile(String bucket) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
+ Iterable> results = minioClient.listObjects(
+ ListObjectsArgs.builder().bucket(bucket).build());
+ List fileInfoList = new LinkedList<>();
+ for (Result- result : results) {
+ FileInfo fileInfo = new FileInfo();
+ Item item = result.get();
+ fileInfo.setFileName(item.objectName());
+ fileInfo.setDirectoryFlag(item.isDir());
+ fileInfo.setEtag(item.etag());
+ fileInfoList.add(fileInfo);
+ }
+ return fileInfoList;
+ }
+
+ /**
+ * @description: 下载文件
+ * @param: [bucket, objectName]
+ * @return: java.io.InputStream
+ * @author landaiqing
+ * @date: 2024/2/17 16:11
+ */
+ public InputStream download(String bucket, String objectName) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
+ return minioClient.getObject(GetObjectArgs.builder().bucket(bucket).object(objectName).build());
+ }
+
+ /**
+ * @description: 删除桶
+ * @param: [bucket]
+ * @return: void
+ * @author landaiqing
+ * @date: 2024/2/17 16:14
+ */
+ public void deleteBucket(String bucket) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
+ minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucket).build());
+ }
+
+ /**
+ * @description: 删除文件
+ * @param: [bucket, objectName]
+ * @return: void
+ * @author landaiqing
+ * @date: 2024/2/17 16:14
+ */
+ public void deleteObject(String bucket, String objectName) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
+ minioClient.removeObject(
+ RemoveObjectArgs.builder().bucket(bucket).object(objectName).build());
+ }
+}
diff --git a/jc-club-oss/src/main/resources/application.yml b/jc-club-oss/src/main/resources/application.yml
new file mode 100644
index 0000000..08fe2f3
--- /dev/null
+++ b/jc-club-oss/src/main/resources/application.yml
@@ -0,0 +1,8 @@
+server:
+ port: 4000
+minio:
+ url: http://47.108.158.61:9000/
+ accessKey: landaiqing
+ secretKey: LDQ20020618xxx
+
+
diff --git a/jc-club-oss/src/main/resources/bootstrap.yml b/jc-club-oss/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..694deb4
--- /dev/null
+++ b/jc-club-oss/src/main/resources/bootstrap.yml
@@ -0,0 +1,17 @@
+spring:
+ application:
+ name: jc-club-oss
+ profiles:
+ active: dev
+ cloud:
+ nacos:
+ config:
+ server-addr: 47.108.158.61:8848
+ prefix: ${spring.application.name}
+ group: DEFAULT_GROUP
+ namespace:
+ file-extension: yaml
+ discovery:
+ enabled: true
+ server-addr: 117.72.14.166:8848
+
diff --git a/jc-club-subject/jc-club-starter/src/main/resources/application.yml b/jc-club-subject/jc-club-starter/src/main/resources/application.yml
index 40fd3f3..32410cf 100644
--- a/jc-club-subject/jc-club-starter/src/main/resources/application.yml
+++ b/jc-club-subject/jc-club-starter/src/main/resources/application.yml
@@ -2,10 +2,10 @@ server:
port: 3000
spring:
datasource:
- username: root
+ username: landaiqing
password: iPHzskWvLGI2TrPw2AV7pu4C8O4bfxSSeQrkIqq0ZwM5tpBmx4aI6xN/8xjYgSmIir5v2Cv35Fn2732AypFKww==
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://47.108.158.61:3306/jc-club?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true
+ url: jdbc:mysql://116.196.80.239:3306/jc-club?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true
type: com.alibaba.druid.pool.DruidDataSource
druid:
initial-size: 20