MinIO【部署 01】MinIO安装及SpringBoot集成简单测试

MinIO安装及SpringBoot集成测试

  • 1.下载安装
    • 1.1 Install the MinIO Server
    • 1.2 Launch the MinIO Server
    • 1.3 Connect Your Browser to the MinIO Server
  • 2.SpringBoot集成
    • 2.1 依赖及配置
    • 2.2 代码
    • 2.3 测试结果

1.下载安装

下载 https://min.io/download#/linux;
安装文档 https://min.io/docs/minio/linux/index.html。

在这里插入图片描述

1.1 Install the MinIO Server

# 指导安装方式
wget https://dl.min.io/server/minio/release/linux-arm64/archive/minio-20230804174021.0.0.aarch64.rpm -O minio.rpm
sudo dnf install minio.rpm# 实际安装
rpm -ivh minio-20230804174021.0.0.x86_64.rpm

1.2 Launch the MinIO Server

# 指导启动方式
mkdir ~/minio
minio server ~/minio --console-address :9090# 实际启动
mkdir -p /home/minio/data
minio server /home/minio/data --console-address tcloud:9090
[root@tcloud data]# minio server /home/minio/data --console-address tcloud:9090
WARNING: Detected Linux kernel version older than 4.0.0 release, there are some known potential performance problems with this kernel version. MinIO recommends a minimum of 4.x.x linux kernel version for best performance
Formatting 1st pool, 1 set(s), 1 drives per set.
WARNING: Host local has more than 0 drives of set. A host failure will result in data becoming unavailable.
WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables
MinIO Object Storage Server
Copyright: 2015-2023 MinIO, Inc.
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Version: RELEASE.2023-08-04T17-40-21Z (go1.19.12 linux/amd64)Status:         1 Online, 0 Offline.
S3-API: http://172.17.0.8:9000  http://172.18.0.1:9000  http://172.81.0.1:9000  http://172.20.240.0:9000  http://127.0.0.1:9000
RootUser: minioadmin
RootPass: minioadminConsole: http://tcloud:9090
RootUser: minioadmin
RootPass: minioadminCommand-line: https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart$ mc alias set myminio http://172.17.0.8:9000 minioadmin minioadminDocumentation: https://min.io/docs/minio/linux/index.html
Warning: The standard parity is set to 0. This can lead to data loss.
# 后台启动命令
nohup /usr/local/bin/minio server /home/minio/data --console-address tcloud:9090 > /home/minio/data/minio.log 2>&1 &# 自定义账号密码后的启动
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=miniostorage
nohup /usr/local/bin/minio server  /home/minio/data --console-address tcloud:9090 > /home/minio/data/minio.log 2>&1 &

1.3 Connect Your Browser to the MinIO Server

工作台详细使用文档 https://min.io/docs/minio/linux/administration/minio-console.html#minio-console

登录页面:

在这里插入图片描述
登录成功:

在这里插入图片描述

2.SpringBoot集成

Java Quickstart Guide https://min.io/docs/minio/linux/developers/java/minio-java.html#minio-java-quickstart

Java SDK https://github.com/minio/minio-java/tree/release

在这里插入图片描述

2.1 依赖及配置

<!--当前的最新版本-->
<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.5</version>
</dependency>

Minio Console上生成的两个 Key:

在这里插入图片描述

在这里插入图片描述

{"accessKey": "SllF5SkIozb1n0b1D84M","api": "s3v4","path": "auto","secretKey": "ZQSiCm3UDST1Q5lL1sImpOUNKIQSv6qZGucB4ku0","url": "http://tcloud:9090/api/v1/service-account-credentials"
}

yml配置:

minio:url: http://tcloud:9000accessKey: SllF5SkIozb1n0b1D84MsecretKey: ZQSiCm3UDST1Q5lL1sImpOUNKIQSv6qZGucB4ku0bucketName: tcloud-minio

2.2 代码

Minio配置类:

@Configuration
@ConfigurationProperties(prefix = "minio")
@Data
public class MinioConfig {private String url;private String accessKey;private String secretKey;private String bucketName;
}

Minio工具类:

@Slf4j
@Component
public class MinioUtil {private MinioClient minioClient;@Resourceprivate FileSystemConfig fileSystemConfig;@Resourceprivate MinioConfig minioConfig;private String bucketName;@PostConstructprivate void connectToServer() {if (fileSystemConfig.isMinioEnable()) {// 初始化 MinioClientminioClient = MinioClient.builder().endpoint(minioConfig.getUrl()).credentials(minioConfig.getAccessKey(), minioConfig.getSecretKey()).build();// 检测 bucket 是否存在bucketName = minioConfig.getBucketName();bucketExists(bucketName);}}/*** 根据 bucketName 检测是否存在 不存在则创建** @param bucketName 名称*/public void bucketExists(String bucketName) {try {boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());if (!found) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());}} catch (Exception e) {log.error("bucketExists Failed!");e.printStackTrace();}}public void fileUploader(String objectName, String filePath) {try {UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder().bucket(bucketName).object(objectName).filename(filePath).build();minioClient.uploadObject(uploadObjectArgs);} catch (Exception e) {log.error("fileUploader [{}] Failed!", filePath);e.printStackTrace();}}public void fileDownload(String objectName, String targetFilePath) {Path path = new File(targetFilePath).toPath();try {GetObjectArgs getObjectArgs = GetObjectArgs.builder().bucket(bucketName).object(objectName).build();InputStream stream = minioClient.getObject(getObjectArgs);Files.copy(stream, path, StandardCopyOption.REPLACE_EXISTING);} catch (Exception e) {log.error("fileDownload [{}] Failed!", targetFilePath);e.printStackTrace();}}
}

2.3 测试结果

查看Buckets信息:

在这里插入图片描述
查看对象信息:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/81304.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity解决:3D开发模式第三人称视角 WASD控制角色移动旋转 使用InputSystem

Unity版本&#xff1a;2019.2.3f1 目录 安装InputSystem 1&#xff1a;创建InputHander.cs脚本 挂载到Player物体上 获取键盘输入WADS 2.创建PlayerLocomotion.cs挂载到Player物体上&#xff0c;控制物体移动转向 安装InputSystem 菜单栏/Window/Package Manager/Input Syst…

一款打工人必备的电脑端自律软件!!冲鸭打工人!!

你&#xff01;有没有渴望进步&#xff01;&#xff01; 你&#xff01;有没有渴望变强&#xff01;&#xff01;&#xff01; 成为大佬&#xff01;&#xff01;&#xff01;超越巨佬&#xff01;&#xff01;&#xff01; 这就是一款为这样的你量身定做的程序&#xff1a;输入…

solidity0.8.0的应用案例9:代理合约

代码由OpenZeppelin的Proxy合约简化而来。 代理模式 Solidity合约部署在链上之后,代码是不可变的(immutable)。这样既有优点,也有缺点: 优点:安全,用户知道会发生什么(大部分时候)。坏处:就算合约中存在bug,也不能修改或升级,只能部署新合约。但是新合约的地址与…

数字孪生技术对旅游行业能起到什么作用?

随着疫情对我们生活影响的淡化&#xff0c;旅游行业迎来了新的春天&#xff0c;暑期更是旅游行业的小高潮&#xff0c;那么作为一个钻研数字孪生行业的小白&#xff0c;本文就着旅游的话题以及对旅游的渴望带大家一起探讨一下数字孪生对智慧旅游发展的作用~ 数字孪生作为一种虚…

DBi Tech Studio Controls for .NET Crack

DBi Tech Studio Controls for .NET Crack Studio Controls for.NET为企业开发人员提供了一套全面的Windows布局和信息表示软件元素&#xff0c;面向搜索业务分析商业调度和UI表示控制器的程序员。Studio Controls for.NET包含17个免版税的.NET Windows窗体控件&#xff0c;用于…

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例

IDEA 启动SpringBoot的命令 C:\Users\Administrator\.jdks\corretto-17.0.8\bin\java.exe -XX:TieredStopAtLevel1 -Dspring.output.ansi.enabledalways -Dcom.sun.management.jmxremote -Dspring.jmx.enabledtrue -Dspring.liveBeansView.mbeanDomain -Dspring.applica…

为什么需要单元测试?

为什么需要单元测试&#xff1f; 从产品角度而言&#xff0c;常规的功能测试、系统测试都是站在产品局部或全局功能进行测试&#xff0c;能够很好地与用户的需要相结合&#xff0c;但是缺乏了对产品研发细节&#xff08;特别是代码细节的理解&#xff09;。 从测试人员角度而言…

vue3 tailwindcss的使用

首先安装依赖&#xff1a; npm install -D tailwindcsslatest postcsslatest autoprefixerlatestnpm i -D unocss 然后vite.config.ts中 引入 import Unocss from unocss/viteexport default defineConfig({plugins: [Unocss(),],})终端执行&#xff1a; npx tailwindcss in…

手写模拟SpringBoot核心流程(二):实现Tomcat和Jetty的切换

实现Tomcat和Jetty的切换 前言 上一篇文章我们聊到&#xff0c;SpringBoot中内置了web服务器&#xff0c;包括Tomcat、Jetty&#xff0c;并且实现了SpringBoot启动Tomcat的流程。 那么SpringBoot怎样自动切换成Jetty服务器呢&#xff1f; 接下来我们继续学习如何实现Tomcat…

idea连接linux远程docker详细教程操作

1&#xff1a;修改docker配置文件docker.service vi /usr/lib/systemd/system/docker.service2&#xff1a;找到 ExecStart&#xff0c;在最后面添加 -H tcp://0.0.0.0:2375 # for containers run by docker ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/…

基于Jenkins构建生产CICD环境(第三篇)

目录 基于Jenkins自动打包并部署docker环境 1、安装docker-ce 2、阿里云镜像加速器 3、构建tomcat 基础镜像 4、构建一个Maven项目 基于Jenkins自动化部署PHP环境 基于rsync部署 基于Jenkins自动打包并部署docker环境 1、安装docker-ce 在192.168.2.123 机器上&#x…