当前位置: 首页 > news >正文

8、SpringBoot集成MinIO

8、SpringBoot集成MinIO

https://xiaoxueblog.com/ai/SpringBoot%E9%9B%86%E6%88%90MinIO.html

1、pom

<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.12</version>
</dependency>

2、application.yml

# ========================minio=====================
minio:endpoint: http://127.0.0.1:9000accessKey: secretKey: bucketName: xxaicloud

3、MinioConfig

package com.xx.config;import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @Author: xueqimiao* @Date: 2025/3/5 15:53*/
@Configuration
public class MinioConfig {@Value("${minio.endpoint:}")private String endpoint;@Value("${minio.access-key:}")private String accessKey;@Value("${minio.secret-key:}")private String secretKey;@Beanpublic MinioClient minioClient() {return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();}}

4、MinIoUtil

package com.xx.util;import io.minio.*;
import io.minio.errors.*;
import io.minio.http.Method;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;/*** @Author: xueqimiao* @Date: 2025/3/5 15:56*/
@Component
public class MinIoUtil {@Resourceprivate MinioClient minioClient;@Value("${minio.bucketName}")private String bucketName;@Value("${minio.endpoint}")private String minIOUrl;/*** 上传文件** @param fileName* @param inputStream* @param contentType* @return*/public String upload(String fileName, InputStream inputStream, String contentType)throws ServerException, InsufficientDataException, ErrorResponseException,IOException, NoSuchAlgorithmException, InvalidKeyException,InvalidResponseException, XmlParserException, InternalException {boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());if (!isExist) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());}// 文件上传minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(fileName).stream(inputStream, -1, 10485760).contentType(contentType).build());// 设置 URL 过期时间为 1 小时(3600秒)// int expirationTimeInSeconds = 3600; // 过期时间1小时// 返回 URL 地址 V1return minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().bucket(bucketName).object(fileName)//.expiry(expirationTimeInSeconds).method(Method.GET).build());}
}

5、测试

package com.xx;import com.xx.util.MinIoUtil;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;/*** @Author: xueqimiao* @Date: 2025/3/5 15:58*/
@SpringBootTest
public class MinIoUtilTest {@Resourceprivate MinIoUtil minIoUtil;@Testpublic void upload() {try {InputStream inputStream = new FileInputStream(new File("/Users/xueqimiao/Desktop/pic/1.jpg"));System.out.println(minIoUtil.upload("1.jpg", inputStream, "image/jpg"));} catch (Exception e) {throw new RuntimeException(e);}}}

image-20250305163258135

相关文章:

  • 鸿蒙OSUniApp 制作简洁高效的标签云组件#三方框架 #Uniapp
  • 插槽(Slot)的使用方法
  • GPUGeek云平台实战:DeepSeek-R1-70B大语言模型一站式部署
  • 应用BERT-GCN跨模态情绪分析:贸易缓和与金价波动的AI归因
  • buildroot使用外部编译链编译bluez蓝牙工具
  • MySQL-数据库分布式XA事务
  • 连接指定数据库时提示not currently accepting connections
  • Golang基础知识—cond
  • LM2902:一款高性能四运算放大器的解析
  • 蓝桥杯 2024 C++国 B最小字符串
  • 论文学习_Directed Greybox Fuzzing
  • 《MySQL:MySQL视图特性》
  • rsync入门笔记
  • 第30节:现代CNN架构-轻量级架构EfficientNet
  • 【YOLO 系列】基于YOLO的道路坑洞检测识别系统【python源码+Pyqt5界面+数据集+训练代码】
  • 各个历史版本mysql/tomcat/Redis/Jdk/Apache下载地址
  • 解决facefusion下载抱错的问题
  • ADS1220高精度ADC(TI)——应用 源码
  • 科学养生指南:解锁健康生活的密码
  • 【Python】【面试凉经】Fastapi为什么Fast
  • 《制止滥用行政权力排除、限制竞争行为规定(修订草案征求意见稿)》公开征求意见
  • 日本前卫艺术先驱群展上海:当具体派相遇古树古宅
  • 今天北京白天气温超30℃,晚间为何下冰雹?
  • 中国人民抗日战争暨世界反法西斯战争胜利80周年纪念活动标识发布
  • 警方通报:某博主遭勒索后自杀系自导自演,已立案调查
  • 科普|“小”耳洞也会引发“大”疙瘩,如何治疗和预防?