feat: minio

minio
This commit is contained in:
Guwan 2024-12-07 23:43:03 +08:00
parent 5e5a51425c
commit e4a035aa33
4 changed files with 19 additions and 13 deletions

View File

@ -2,9 +2,8 @@ package com.guwan.backend.util;
import io.minio.*; import io.minio.*;
import io.minio.http.Method; import io.minio.http.Method;
import io.minio.messages.Bucket; import io.minio.messages.DeleteError;
import io.minio.messages.DeleteObject; import io.minio.messages.DeleteObject;
import io.minio.messages.Item;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.FilenameUtils;
@ -13,7 +12,9 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.InputStream; import java.io.InputStream;
import java.util.*; import java.util.Base64;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j

View File

@ -77,8 +77,8 @@ aliyun:
# MinIO配置 # MinIO配置
minio: minio:
endpoint: http://localhost:9000 endpoint: http://localhost:9000
accessKey: minioadmin accessKey: admin
secretKey: minioadmin secretKey: admin123456
bucket: bucket:
files: files # 文件桶 files: files # 文件桶
images: images # 图片桶 images: images # 图片桶

View File

@ -8,12 +8,10 @@ import org.springframework.security.crypto.password.PasswordEncoder;
@SpringBootTest @SpringBootTest
public class Test1 { public class Test1 {
private final PasswordEncoder passwordEncoder;
@Autowired @Autowired
public Test1(PasswordEncoder passwordEncoder) { private PasswordEncoder passwordEncoder;
this.passwordEncoder = passwordEncoder;
}
@Test @Test
void test1() { void test1() {

View File

@ -22,7 +22,7 @@ class MinioUtilTest {
@Test @Test
void testUploadAndDeleteFile() { void testUploadAndDeleteFile() {
// 创建测试文件 // 创建测试文件
String content = "test content"; String content = "顾挽妮妮";
MockMultipartFile file = new MockMultipartFile( MockMultipartFile file = new MockMultipartFile(
"test.txt", "test.txt",
"test.txt", "test.txt",
@ -30,17 +30,23 @@ class MinioUtilTest {
content.getBytes(StandardCharsets.UTF_8) content.getBytes(StandardCharsets.UTF_8)
); );
// 上传文件 // 上传文件
String fileName = minioUtil.uploadFile(minioConfig.getBucket().getFiles(), file); String fileName = minioUtil.uploadFile(minioConfig.getBucket().getFiles(), file);
System.out.println("minioConfig = " + minioConfig.getBucket().getFiles());
System.out.println("minioConfig = " + minioConfig.getBucket());
assertNotNull(fileName); assertNotNull(fileName);
// 获取文件URL // 获取文件URL
String url = minioUtil.getFileUrl(minioConfig.getBucket().getFiles(), fileName); String url = minioUtil.getFileUrl(minioConfig.getBucket().getFiles(), fileName);
System.out.println("url = " + url);
System.out.println("fileName = " + fileName);
assertNotNull(url); assertNotNull(url);
assertTrue(url.contains(fileName)); assertTrue(url.contains(fileName));
// 删除文件 // 删除文件
minioUtil.deleteFile(minioConfig.getBucket().getFiles(), fileName); // minioUtil.deleteFile(minioConfig.getBucket().getFiles(), fileName);
} }
@Test @Test
@ -58,10 +64,11 @@ class MinioUtilTest {
// 获取图片URL // 获取图片URL
String url = minioUtil.getFileUrl(minioConfig.getBucket().getImages(), fileName); String url = minioUtil.getFileUrl(minioConfig.getBucket().getImages(), fileName);
System.out.println("url = " + url);
assertNotNull(url); assertNotNull(url);
assertTrue(url.contains(fileName)); assertTrue(url.contains(fileName));
// 删除图片 // 删除图片
minioUtil.deleteFile(minioConfig.getBucket().getImages(), fileName); // minioUtil.deleteFile(minioConfig.getBucket().getImages(), fileName);
} }
} }