SpringBoot整合MinIO

2023-11-15

在这里插入图片描述

1 问题背景

前面搭建了MinIO容器,现在来研究SpringBoot整合MinIO

2 前言

MinIO的官方文档给出了Java如何使用MinIO的教程,详情见官方文档,笔者根据该官方文档简单地实战。并针对某些注意事项做特别详细介绍。

3 步骤

3.1 引入依赖

引入MinIO的依赖

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

MinIO的客户端需要用到OKHttp,因此把OKHttp的依赖也引入进来,不引入会在创建minio客户端的过程中会报错

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.9.0</version>
</dependency>

3.2 连接MinIO服务端的必要参数

参数名 解释
Endpoint MinIO服务端所在的服务器地址,格式为:http协议://MInIO服务端所在的ip地址:MinIO的API端口号
Access Key 访问MinIO的key,在MinIO控制台获取
Secret Key 访问MinIO的密钥,在MinIO控制台获取

3.3 代码实现文件上传功能

public class FileUploader {

    // 桶名
    private final static String BUCKET_NAME =  "asia";
    // 待上传的文件所在的路径,此处我用windows系统,linux系统一样是写路径
    private final static String FILE_NAME = "D:\\Google Download\\博客图片\\yunying.png";
    // 文件上传后的名字
    private final static String OBJECT_NAME = "yunying.png";


    public static void main(String[] args)
            throws IOException, NoSuchAlgorithmException, InvalidKeyException {
        try {

            MinIOProperties minIOProperties = getMinIOProperties();


            // Create a minioClient with the MinIO server playground, its access key and secret key.
            MinioClient minioClient =
                    MinioClient.builder()
                            .endpoint(minIOProperties.getEndpoint())
                            .credentials(minIOProperties.getAccessKey(), minIOProperties.getSecretKey())
                            .build();

            // Make 'asiatrip' bucket if not exist.
            boolean found =
                    minioClient.bucketExists(BucketExistsArgs.builder().bucket(BUCKET_NAME).build());
            if (!found) {
                // Make a new bucket called 'asiatrip'.
                minioClient.makeBucket(MakeBucketArgs.builder().bucket(BUCKET_NAME).build());
            } else {
                System.out.println("Bucket '" + BUCKET_NAME + "' already exists.");
            }

            // Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket
            // 'asiatrip'.
            minioClient.uploadObject(
                    UploadObjectArgs.builder()
                            .bucket(BUCKET_NAME)
//                            .object("asiaphotos-2015.zip")
                            .object(OBJECT_NAME)
//                            .filename("/home/user/Photos/asiaphotos.zip")
                            .filename(FILE_NAME)
                            .build());
            System.out.println(
                    "'" + FILE_NAME + "' is successfully uploaded as "
                            + "object '" + OBJECT_NAME + "' to bucket '" + BUCKET_NAME + "'.");
        } catch (MinioException e) {
            System.out.println("Error occurred: " + e);
            System.out.println("HTTP trace: " + e.httpTrace());
        }
    }

    /**
     * 构造MinIO Server的配置
     * @return
     */
    private static MinIOProperties getMinIOProperties(){
        MinIOProperties properties = new MinIOProperties();
        properties.setEndpoint("http://192.168.163.128:9001");
        properties.setAccessKey("kLCCny4gsGsNYrMN");
        properties.setSecretKey("2eXuvFDbf28Uk8FAf2LMXTj0rRTU43tt");
        return properties;
    }
}

3.4 验证

前往MinIO控制台查看是否成功上传了图片。图片的访问路径是MInIO服务端所在的ip地址:MinIO的API端口号/桶名/文件名

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot整合MinIO 的相关文章

  • docker of minio解决浏览器无法访问的问题

    1 拉取镜像 docker pull minio minio 2 启动minio xff0c 动态端口云服务器会改变 docker run span class token punctuation span p 9090 span clas
  • 用warp给minio测压

    拉取Docker镜像 看到拉取的warp镜像已经跑起来了 这里的docker run minio warp v0 4 5 h 就是查看 help文档 xff0c 上面那条语句原型是docker run minio warp v0 4 5 w
  • 通过minio operator在k8s中部署minio tenant集群

    1 概述 MinIO是kubernetes原生的高性能对象存储 xff0c 兼容Amazon的s3 API MinIO Operator是一个工具 xff0c 该工具扩展了k8s的api 可以通过minio operator在公有云和私有云
  • Docker安装Minio

    寻找Minio镜像 Docker Hub 查找官方镜像 下载Minio镜像 下载最新版Minio镜像 span class token function docker span pull minio minio 等同于 span class
  • 搭建分布式存储服务minio详细过程

    最近项目的存储量比较大 xff0c 考虑项目后期存储需要拓展 xff0c 决定使用分布式存储 xff0c 综合考察后 xff0c 最终选定使用minio作为存储服务 以下是使用步骤 xff0c MARK一下 xff01 1 服务器 span
  • 需求:节目上传至MINIO后,使用mqtt进行上报

    需求 xff1a 节目上传至MINIO后 xff0c 使用mqtt进行上报 环境准备 文件管理平台 xff1a 首先需要使用minio搭建属于自己的对象存储 xff08 此步骤跳过 xff09 通信方式 xff1a MQTT方式 xff0c
  • SpringBoot整合Minio

    1 引入依赖 POM文件如下
  • docker minio部署作为shareX截图软件的图床

    目标 使用docker搭建minio对象存储 使用minio作为shareX截图软件图床 以便于在编辑typora文档时的图片资源可以通过minio管理 移动typora文档时不用再估计图片的存储 文末有jar包下载提供 MinIO 是一个
  • 【避坑】minio临时凭证STS实现上传,下载

    一 背景 以minio作为图床 采用用户到minio服务器的点对点使用方式 将上传用户的长期凭证放在客户端 app或者web端 带来极大的风险 通常通过临时凭证STS签名的方式实现 简单的逻辑关系图如下 二 minio服务docker安装
  • 使用minio接口里上传的图片无法在管理界面预览,直接在管理界面上传的图片可以预览

    记录一下使用minio存储文件的时候遇到一些坑爹问题 先是上传的方法putObject 用官网给的sdk示例一写 发现居然提示错误了 然后进该方法类仔细看了一下 好家伙居然方法偷偷改过了但是官网还没改 于是写的测试方法如下 filename
  • linux centos安装minio

    第一步 进入 opt 目录 创建minio文件夹 cd opt mkdir minio 第二步 wget下载安装包 命令 wegt https dl minio io server minio release linux amd64 min
  • Minio 部署

    minio 官网 https www minio org cn 部署文档 https www minio org cn docs minio container operations install deploy manage deploy
  • linux安装minio以及springboot整合使用

    文章目录 1 linux安装minio 2 springboot整合minio使用 1 linux安装minio 1 新建文件夹 mkdir home minio 数据文件夹 mkdir home minio data 创建日志文件夹 mk
  • minio 配置

    文章目录 资源访问 用户和权限 策略 用户 Service Accounts java 连接 minio k8s 部署 minio 资源访问 某些资源例如图片 需要可以直接访问 新建桶 上传一张图片上去 点击桶设置 设置 Access Po
  • 分布式文件存储Minio学习入门

    文章目录 一 分布式文件系统应用场景 1 Minio介绍 Minio优点 2 MinIO的基础概念 3 纠删码ES Erasure Code 4 存储形式 5 存储方案 二 Docker部署单机Minio 三 minio纠删码模式部署 四
  • Minio控制台详细教程

    前言 此文讲解Minio控制台详细教程 可能会涉及到有些知识大家可能不懂情况 需要知道Minio兼容的是AMS S3对象存储服务 需要知道AMS S3对象存储服务是什么 里面涉及的到配置如何去配等等 https docs aws amazo
  • 自建对象存储服务minio在使用nginx进行反向代理时出现对象无法正常共享的解决办法

    什么是minio Minio是在Apache License v2 0下发布的对象存储服务器 它与Amazon S3云存储服务兼容 它最适合存储非结构化数据 如照片 视频 日志文件 备份和容器 VM镜像等 对象的大小可以从几KB到最大5TB
  • 安装登录minio后,页面一直转圈

    报错 WARNING MINIO ACCESS KEY and MINIO SECRET KEY are deprecated Please use MINIO ROOT USER and MINIO ROOT PASSWORD 处理方案
  • 安装登录minio后,页面一直转圈

    报错 WARNING MINIO ACCESS KEY and MINIO SECRET KEY are deprecated Please use MINIO ROOT USER and MINIO ROOT PASSWORD 处理方案
  • Minio:存储桶策略与匿名/授权访问有何关系?

    Minio 有以下政策 每个桶 https github com minio minio java blob 6a4cf897df8c55cf4b46ed32617bf8bf41efe53c api src main java io min

随机推荐

  • Cygwin 、MSYS、MinGW 的区别与联系是怎样的?

    讲区别联系之前 我们先看一下这几个东东的前世今生 Cygwin 原 Cygnus 出品 已被红帽收购 目前是 RedHat 名下的项目 项目的目的是提供运行于 Windows 平台的类 Unix 环境 以 GNU 工具为代表 为了达到这个目
  • Java 中的Lock锁对象(ReentrantLock/ReentrantReadWriteLock)详解

    目录 1 Lock Objects 详解 2 Java 中的 Lock Objects 的实现原理 3 ReentrantLock 详解 4 ReentrantReadWriteLock 详解 5 Lock锁的等待和唤醒 6 Lock 和
  • 代码的执行原理

    代码的执行原理 一 代码段 什么是代码段 一个script标签就是一个代码段 JS代码在执行时 是一个代码段一个代码段执行 二 代码执行的步骤 JS代码在执行时分两个阶段 1 预编译 2 代码执行 每一个阶段做的事情是不一样的 先了解一下定
  • UE5 Rokoko Studio Live(动捕实时链接)

    UE5 Rokoko动作捕捉实时 一 新建初始化项目 添加插件 打开UE5 1 1 新建 第三人称游戏 文件夹筛选找到模板自带的关卡 新建动画蓝图 gt 然后选择到UE的小白人骨骼 因为我们需要Rokoko的实时动捕 需要在项目里添加Rok
  • IDEA常用快捷键

    IDEA常用快捷键 快捷键 描述 Ctrl Shift R 全局搜索 替换 Ctrl Shift F 全局搜索 Ctrl F 局部搜索 Shift双击 搜索类 接口等 Ctrl 鼠标点击类名称 进入类的内部 Ctrl Alt O 清除不使用
  • 气候数据处理代码实现

    案例 根据站点降雨量日数据求月总降雨量 年总降雨量 月降雨天数 年降雨天数等 数据 部分数据如下 统计结果
  • 怎么理解KMP算法中的next数组(为甚有时候加一有时候不加一?)

    KMP算法怎么来的和找规律 以及对于BF算法他的主要区别就不再赘述我们 我们来说一下怎么用最快的速度加上已知规律找到给定字符串的next数组 C语言中和java中都适用 我们已经找到了部分规律 next数组中的值可能和已匹配部分字符串的前缀
  • 关于RabbitMQ的面试题

    关于RabbitMQ的面试题 整理了一下面试中问到rabbitmq消息队列时 面试官可能会问到的问题 面试题1 为什么使用rabbitmq 什么时候用 怎么用 一开始写项目 架构比较单一 使用的是单体结构 把所有的业务都堆积在一个项目里 随
  • [1220]hue数据导出

    1 执行要下载的sql语句 2 执行完成后 点击下面导出 3 选择所有 4 选择每个人对应的文件夹 没有自己名称的可以创建一个 5 选择导出 6 右面是导出执行时的界面 7 选择已经执行的文件 8 按照下面截图提示 就可以将文件下载到本地了
  • iOS上架报错:无法添加以供审核

    无法提交以供审核 要开始审核流程 必须提供以下项目 您必须为要添加的 app 提供版权信息 您在提交 app 审核时遇到的问题是因为需要提供版权信息 而您的 app 缺少相关的版权信息 以下是解决此问题的步骤 确认您是否拥有 app 的版权
  • kettle 关于数据库事务操作的解释说明

    事务与数据库 1 数据库连接只在执行作业或转换时使用 在作业里 每一个作业项都打开和关闭一个独立的数据库连接 转换也是如此 但是因为转换里的步骤是并行执行的 每个步骤都打开一个独立的数据库连接并开始一个事务 尽管这样在很多情况下会提高性能
  • Airbnb深度学习在搜索领域的探索总结

    今天的博客主要参考了Airbnb发表的paper Applying Deep Learning To Airbnb Search 这篇paper介绍了近2年Airbnb在搜索场景下所使用模型的演进路线 以及一些失败的总结和经验的总结 最难能
  • 常用的渗透测试工具之 SQLMap

    web安全攻防 第三章学习之SQLmap SQLMap介绍 SQLMap是自动化的SQL注入工具 主要功能是扫描 发现并利用URL的SQL注入漏洞 内置了很多绕过插件 SQLMap采用了五种独特的SQL注入技术 如下 1 基于布尔类型的盲注
  • maven deploy 遇到 “方法不会覆盖或实现超类型的方法” 不要慌

    思考问题 这个bug看的我莫名其妙 看名字也看不懂说的啥 在网上看到说什么把 Override去掉就行了什么 我就觉得很奇怪 跟这个能有什么关系呢 网上既然说是跟 Override有关 那么这应该是是跟我实现的接口有关 后来发现是我在接口中
  • 【星海随笔】Windows 下 安装 Eclipse IDE 编辑 C++ Code

    首先下载Eclips https download csdn net download weixin 41997073 86727250 安装后 然后点点点就可以了 但要记住自己安装的路径 安装后 先认识一下这个工具 File可以创建项目
  • sublime vue 语法高亮插件安装

    转自 http www cnblogs com cosnyang p 6290950 html 默认情况下 Vue js 的单文件组件 vue 在 sublime 编辑器中是不被识别的 若要想高亮显示 需要安装插件 Vue Syntax H
  • No such operator image::read_file问题解决

    在学习动手学深度学习这门课的时候 在13 6 节 标检测数据集这一章遇到了问题 读取数据的时候报错 No such operator image read file 网上有人说问题在于pytorch版本和torchvision版本不对应 可
  • weixin-js-sdk使用

    注意 以下内容自身的项目为uniapp编译生成微信小程序 小程序内嵌webview 一 微信初始化 安装微信sdk npm install weixin js sdk save 页面引入 import wx from weixin js s
  • 构建高性能数据库缓存之Redis(一)

    一 Redis概述 1 1 什么是redis Redis是一个开源的用ANSI C编写 支持网络 基于内存 亦可持久化的日志型 Key Value数据库 根据DB Engines com站点月度排行的数据显示 Reidis是最流行的键值对存
  • SpringBoot整合MinIO

    文章目录 1 问题背景 2 前言 3 步骤 3 1 引入依赖 3 2 连接MinIO服务端的必要参数 3 3 代码实现文件上传功能 3 4 验证 1 问题背景 前面搭建了MinIO容器 现在来研究SpringBoot整合MinIO 2 前言