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

SpringBoot集成Minio

1.pom文件引入

        <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.2.2</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version><scope>provided</scope></dependency>

2.MinioConfig配置文件

package com.example.demo.config;import io.minio.MinioClient;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Data
@Configuration
@ConfigurationProperties(prefix = "minio")
public class MinioConfig {private String endpoint;private String accessKey;private String secretKey;private String bucketName;@Beanpublic MinioClient minioClient() {return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();}}

3.Service代码

package com.example.demo.service;import com.example.demo.config.MinioConfig;
import io.minio.*;
import io.minio.http.Method;
import io.minio.messages.Bucket;
import io.minio.messages.Item;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.stereotype.Service;import java.util.ArrayList;
import java.util.List;/*** @Author JiaQIng* @Description MinioService* @ClassName MinioService* @Date 21点19分**/
@Service
@RequiredArgsConstructor
public class MinioService {private final MinioClient minioClient;private final MinioConfig minioConfig;/*** 查看bucket是否存在** @param bucketName* @return*/@SneakyThrowspublic Boolean bucketExists(String bucketName) {return minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());}/*** 创建存储bucket** @return Boolean*/@SneakyThrowspublic void makeBucket(String bucketName) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());}/*** 删除存储bucket* @return Boolean*/@SneakyThrowspublic void removeBucket(String bucketName) {minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucketName).build());}/*** 获取全部bucket*/@SneakyThrowspublic List<Bucket> listBuckets() {return minioClient.listBuckets();}/*** 获取文件的url* @param fileName* @return*/@SneakyThrowspublic String getPresignedObjectUrl(String fileName){GetPresignedObjectUrlArgs build = GetPresignedObjectUrlArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).method(Method.GET).build();return minioClient.getPresignedObjectUrl(build);}/*** 查看文件对象* @return 存储bucket内文件对象信息*/@SneakyThrowspublic List<Item> listObjects() {Iterable<Result<Item>> results = minioClient.listObjects(ListObjectsArgs.builder().bucket(minioConfig.getBucketName()).build());List<Item> items = new ArrayList<>();for (Result<Item> result : results) {items.add(result.get());}return items;}/*** 删除* @param fileName* @return* @throws Exception*/@SneakyThrowspublic void remove(String fileName) {minioClient.removeObject(RemoveObjectArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).build());}}

4.yml配置文件

minio:#访问的URLendpoint: #密钥accessKey: secretKey: 

5.测试文件

    @Testvoid bucketExists() {Boolean test = minioService.bucketExists("test");
//        Boolean test = minioService.bucketExists("test");System.out.println("查看bucket是否存在" + test);}

http://www.lryc.cn/news/346592.html

相关文章:

  • Colab/PyTorch - 003 Transfer Learning For Image Classification
  • 数据结构深入理解--栈
  • Maven 的仓库、周期和插件
  • parallels desktop19最新免费Mac电脑虚拟机软件
  • 波动性悖论:为何低风险股票长期跑赢高风险对手?
  • 环信设置头像昵称(安卓android)版
  • Rust:用 Warp 库实现 Restful API 的简单示例
  • 【SpringBoot】 什么是springboot(一)?如何搭建springboot项目?
  • 从loss角度理解LLM涌现能力
  • debian apt 更改阿里源
  • Spring Cloud | “微服务“ 架构 与 Spring Cloud
  • win10禁止自动更新的终极方法
  • 笨方法自学python(二)-注释
  • wireshark的安装使用及相关UDP、TCP、 ARP
  • 【软考】模拟考卷错题本2024-05-11
  • VMware虚拟机提示内存不足
  • 视频批量剪辑指南:一键合并视频并添加背景音乐,高效便捷
  • 讲讲C++四种类型转换
  • 探索LLM在广告领域的应用——大语言模型的新商业模式和新个性化广告的潜力
  • MBR与GPT分区表
  • OGG几何内核开发-BRepAlgoAPI_Fuse与BRep_Builder.MakeCompound比较
  • C语言 | Leetcode C语言题解之第67题二进制求和
  • 油泼辣子在食品类别可以申请成商标不!
  • 深入探索MySQL视图
  • C语言逻辑语句
  • C++青少年简明教程:基础知识
  • [AutoSar]lauterbach_001_ORTI_CPUload_Trace
  • 课程设计 大学生竞赛系统
  • 优先队列全面讲解
  • 即插即用篇 | YOLOv8 引入多光谱通道注意力 | 频率领域中的通道注意力网络