fix(storage): 修复MinIO文件上传和配置问题

- 修复文件上传时缺少后缀名的问题,添加对无后缀文件的处理逻辑
- 更新开发和生产环境的OSS配置,修改endpoint、accessKey和secretKey
- 将文件大小限制从100调整为10
- 优化代码格式,修复方法参数换行和构建器链式调用的格式问题
- 统一多个版本中的MinIO仓库代码变更
This commit is contained in:
2026-02-27 16:54:16 +08:00
parent f9a8c58b68
commit 69b7c5d947
9 changed files with 101 additions and 77 deletions
@@ -45,11 +45,13 @@ import io.minio.messages.Bucket;
import io.minio.messages.Item;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -145,15 +147,25 @@ public class MinioRepository {
* @param md5 文件md5
* @return String 上传后的文件名,上传失败返回 null
*/
public SystemOssStorageTb upload(File tempFile, String originalFilename, long fileSize, String contentType,
String md5) {
public SystemOssStorageTb upload(
File tempFile, String originalFilename, long fileSize, String contentType,
String md5
) {
StorageOSSModel ossConfig = properties.getOss();
OSSConfigModel ossMinioConfig = ossConfig.getMinio();
String type = FileTypeUtil.getType(tempFile);
String prefix = KitFileUtil.getPrefix(tempFile);
String suffix = KitFileUtil.getSuffix(tempFile);
String fileCode = IdUtil.fastSimpleUUID();
String fileName = fileCode + FileUtil.getSuffix(originalFilename);
String fileName;
String realSuffix = FileUtil.getSuffix(originalFilename);
if (StrUtil.isBlank(realSuffix)) {
fileName = fileCode;
} else {
fileName = fileCode + "." + realSuffix;
}
String objectName = KitDateUtil.getNowDateStr() + "/" + fileName;
log.info("上传文件,原文件名:{},上传后文件名:{}", originalFilename, fileName);
String fileUrl = ossMinioConfig.getEndpoint() + "/" + ossMinioConfig.getBucketName() + "/" + objectName;
@@ -279,8 +291,10 @@ public class MinioRepository {
public void download(String fileName, HttpServletResponse res) {
GetObjectArgs objectArgs =
GetObjectArgs.builder().bucket(properties.getOss().getMinio().getBucketName()).object(fileName).build();
try (GetObjectResponse response = minioClient.getObject(objectArgs);
FastByteArrayOutputStream os = new FastByteArrayOutputStream()) {
try (
GetObjectResponse response = minioClient.getObject(objectArgs);
FastByteArrayOutputStream os = new FastByteArrayOutputStream()
) {
byte[] buf = new byte[1024];
int len;
while ((len = response.read(buf)) != -1) {