首页 > 其他分享 >springboot整合minio上传文件

springboot整合minio上传文件

时间:2023-12-09 13:32:54浏览次数:40  
标签:String minio bucket getBucketName minioProperties 上传 springboot

(springboot整合minio上传文件)

前言

上章讲了MinIo的下载安装及创建bucket方法,今天来讲一下在springboot中如何整合运用MinIo进行文件上传功能。

springboot整合minio

1. 引入minio依赖

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

2. 编写配置文件

minio:
    endpointUrl: http://192.168.200.128:9000
    accessKey: minioadmin
    secreKey: minioadmin
    bucketName: tt-test

3. minio实体类

@Data
@ConfigurationProperties(prefix = "spzx.minio")
public class MinioProperties {
    private String endpointUrl;
    private String accessKey;
    private String secreKey;
    private String bucketName;
}

4. 实现minio配置

public String fileUpload(MultipartFile file) {
        try {
            //创建MinioClient对象
            MinioClient minioClient = MinioClient.builder()
                    .endpoint(minioProperties.getEndpointUrl())
                    .credentials(minioProperties.getAccessKey(), minioProperties.getSecreKey())
                    .build();
            //创建bucket
            boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(minioProperties.getBucketName()).build());
            if (!found) {
                minioClient.makeBucket(MakeBucketArgs.builder().bucket(minioProperties.getBucketName()).build());
            } else {
                log.info("Bucket '{}' already exists.", minioProperties.getBucketName());
            }

            //获取文件名称
            String dateDir = DateUtil.format(new Date(), "yyyyMMdd");
            String uuid = UUID.randomUUID().toString().replaceAll("-", "");
            String filename = dateDir + "/" + uuid + file.getOriginalFilename();
            //文件上传
            minioClient.putObject(PutObjectArgs.builder()
                    .bucket(minioProperties.getBucketName())
                    .object(filename)
                    .stream(file.getInputStream(), file.getSize(), -1)
                    .build());
            //获取上传文件在minio的路径
            String url = minioProperties.getEndpointUrl() + "/" + minioProperties.getBucketName() + "/" + filename;
            log.info("上传图片url:{}", url);
            return url;
        } catch (Exception e) {
            e.printStackTrace();
            throw new GuiguException(ResultCodeEnum.SYSTEM_ERROR, e.getMessage());
        }
    }

5. 实现效果

image.png

标签:String,minio,bucket,getBucketName,minioProperties,上传,springboot
From: https://blog.51cto.com/u_16370137/8748399

相关文章

  • 毕设选题|基于Springboot和Vue实现游戏攻略分享平台
     作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助收藏点赞不迷路 关注......
  • springboot开启定时不起作用
    1、主启动类开启@EnableScheduling 并且该配置所在的package要能被扫描到 packagecom.gccloud.dataroom.core.config;importcom.gccloud.dataroom.core.module.receive.service.IDataReceiveService;importorg.springframework.beans.factory.annotation.Autowired;......
  • 在线小说|基于SpringBoot和Vue实现小说在线阅读网
    作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享收藏点赞不迷路 关注作者有好处文末获得源码 项目编号:BS-PT-119一,环境介绍语言环境:Java: jdk1.8数据库:My......
  • Spring Boot学习随笔- @SpringBootApplication详解、加载绝对路径配置文件、工厂创建
    学习视频:【编程不良人】2021年SpringBoot最新最全教程3.5@SpringBootApplication详解这是一个组合注解,就是由多个注解组成。下列注解红框内称为元注解(jdk提供)@Target:指定注解作用范围@Retention:指定注解什么时候生效重要注解@SpringBootConfiguration:自动配置Spring......
  • 博客园作为图床,上传图片自动添加图片水印
    专属于博客园的教程。markdown上传图片,添加图片水印,再上传到博客园图床。前言图床有防盗链什么的,处理起来实在是麻烦。既然博客园支持图床,我现在只在博客园写,那就捣鼓了一下。今天是通义千问工程师。菜鸡啥也不会。参考教程首先应参考教程配置,保证博客园图床正确,再对python......
  • upload-labs文件上传通关思路总结
    一、描述顾名思义,文件上传就是利用服务器对上传文件时存在的漏洞来实现上传任意文件,通过自己编写的文件内容让服务器执行文件内容达到可控的目的,但文件的上传往往回有各种各样的过滤,以下将演示upload-labs的关卡:二、关卡1、pass-01尝试把webshell传入到服务器,发现服务器对......
  • Python 使用Paramiko 上传下载远程服务器的文件或文件夹
    Python的Paramiko模块提供了用于SSH连接和文件传输的功能。可以使用Paramiko来上传或下载远程服务器上的文件或文件夹。上传文件要上传文件,可以使用Paramiko的SFTPClient类的put()方法。该方法接受两个参数:本地文件路径和远程文件路径。以下示例将本地文件/tmp/f......
  • Springboot内置神器:CollectionUtils工具类的实战秘籍
    前言实际业务开发中,集合的判断和操作也是经常用到的,Spring也针对集合的判断和操作封装了一些方法,但是最令我惊讶的是,我在梳理这些内容的过程中发现了一些有趣的现象,我的第一反应是不敢相信,再想一想,没错,我是对的。所以强烈建议大家可以认真看完这篇文章,这一篇绝对有价值,因为有趣的......
  • 失物招领平台|基于Springboot和Vue实现失物招领系统
    作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享收藏点赞不迷路 关注作者有好处文末获得源码 项目编号:BS-XX-194一,环境介绍语言环境:Java: jdk1.8数据库:My......
  • 博客上传图片,自动添加水印的办法
     效果使用PicList,在typora里将图片上传图床时,自动添加水印。右下角有水印图片。PicList(http替换成了hxxp,保险起见。)大佬网站hxxps://piclist.cnGithub地址hxxps://github.com/Kuingsmile/PicListredme.mdhxxps://github.com/Kuingsmile/PicList/blob/dev/README_cn.......