文件模块开发
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
package com.dc.dc_project;
|
package com.dc.dc_project;
|
||||||
|
|
||||||
|
import com.dc.dc_project.config.MinioConfig;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
|||||||
@@ -4,24 +4,26 @@ package com.dc.dc_project.config;
|
|||||||
import io.minio.MinioClient;
|
import io.minio.MinioClient;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@Data
|
@Data
|
||||||
|
//@ConfigurationProperties(prefix = "minio")
|
||||||
public class MinioConfig {
|
public class MinioConfig {
|
||||||
|
|
||||||
@Value("${minio.endpoint}")
|
@Value("${minio.endpoint}")
|
||||||
public static String MINIO_ENDPOINT;
|
public String MINIO_ENDPOINT;
|
||||||
|
|
||||||
@Value("${minio.accessKey}")
|
@Value("${minio.accessKey}")
|
||||||
public static String MINIO_ACCESS_KEY;
|
public String MINIO_ACCESS_KEY;
|
||||||
|
|
||||||
@Value("${minio.secretKey}")
|
@Value("${minio.secretKey}")
|
||||||
public static String MINIO_SECRET_KEY;
|
public String MINIO_SECRET_KEY;
|
||||||
|
|
||||||
@Value("${minio.bucketName}")
|
@Value("${minio.bucketName}")
|
||||||
public static String MINIO_BUCKET_NAME;
|
public String MINIO_BUCKET_NAME;
|
||||||
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, File>
|
|||||||
implements FileService{
|
implements FileService{
|
||||||
|
|
||||||
private final MinioService minioService;
|
private final MinioService minioService;
|
||||||
|
private final MinioConfig minioConfig;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
@@ -64,7 +65,7 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, File>
|
|||||||
String url = minioService.uploadFile(
|
String url = minioService.uploadFile(
|
||||||
inputStream,
|
inputStream,
|
||||||
FileUtil.getRandomFileName(),
|
FileUtil.getRandomFileName(),
|
||||||
MinioConfig.MINIO_BUCKET_NAME,
|
minioConfig.MINIO_BUCKET_NAME,
|
||||||
file.getContentType(),
|
file.getContentType(),
|
||||||
fileType.getPath()
|
fileType.getPath()
|
||||||
);
|
);
|
||||||
@@ -88,7 +89,7 @@ public class FileServiceImpl extends ServiceImpl<FileMapper, File>
|
|||||||
// 3. 回滚:删除已上传的文件
|
// 3. 回滚:删除已上传的文件
|
||||||
for (String url : uploadedUrls) {
|
for (String url : uploadedUrls) {
|
||||||
try {
|
try {
|
||||||
minioService.deleteFile(url, MinioConfig.MINIO_BUCKET_NAME);
|
minioService.deleteFile(url, minioConfig.MINIO_BUCKET_NAME);
|
||||||
log.info("已删除文件: {}", url);
|
log.info("已删除文件: {}", url);
|
||||||
} catch (Exception deleteException) {
|
} catch (Exception deleteException) {
|
||||||
log.error("删除文件失败: {}", url, deleteException);
|
log.error("删除文件失败: {}", url, deleteException);
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
public class MinioService {
|
public class MinioService {
|
||||||
|
|
||||||
private final MinioClient minioClient;
|
private final MinioClient minioClient;
|
||||||
|
private final MinioConfig minioConfig;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传文件
|
* 上传文件
|
||||||
@@ -44,7 +45,7 @@ public class MinioService {
|
|||||||
InsufficientDataException e) {
|
InsufficientDataException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
return MinioConfig.MINIO_ENDPOINT + "/" + bucketName + "/" + fileName;
|
return minioConfig.MINIO_ENDPOINT + "/" + bucketName + "/" + fileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -67,7 +68,7 @@ public class MinioService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteFile(String url, String minioBucketName) {
|
public void deleteFile(String url, String minioBucketName) {
|
||||||
String objectName = url.replace(MinioConfig.MINIO_ENDPOINT + "/" + minioBucketName + "/", "");
|
String objectName = url.replace(minioConfig.MINIO_ENDPOINT + "/" + minioBucketName + "/", "");
|
||||||
try {
|
try {
|
||||||
minioClient.removeObject(
|
minioClient.removeObject(
|
||||||
RemoveObjectArgs.builder()
|
RemoveObjectArgs.builder()
|
||||||
|
|||||||
@@ -72,9 +72,9 @@ springdoc:
|
|||||||
path: /swagger-ui/index.html # 自定义路径,默认为"/swagger-ui/index.html"
|
path: /swagger-ui/index.html # 自定义路径,默认为"/swagger-ui/index.html"
|
||||||
|
|
||||||
minio:
|
minio:
|
||||||
endpoint: http://192.168.1.100:9000
|
endpoint: https://database.yuxindazhineng.com
|
||||||
accessKey: minioadmin
|
accessKey: pk0Vv6DOkSUfRqKT5EPn
|
||||||
secretKey: minioadmin
|
secretKey: YVhVB7seIG2q8R6yHL5CqXGYA448tgHIvtQFhq6X
|
||||||
bucketName: dc-lab-system
|
bucketName: dc-lab-system
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user