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

MinIO 完整使用案例

文章目录

    • 一、MinIO 服务端
      • 1.1 使用 docker 创建 MinIO 服务
      • 1.2 访问可视化界面
    • 二、MinIO 客户端 ( Java )
      • 2.1 创建项目并导入依赖
      • 2.2 编写代码
      • 2.3 运行代码
    • 参考资料

完整代码案例:java-demos/middleware-demos/spring-boot-minio at main · idealzouhu/java-demos (github.com)

一、MinIO 服务端

1.1 使用 docker 创建 MinIO 服务

运行以下命令来启动 MinIO 服务

# 拉取镜像
docker pull minio/minio:RELEASE.2024-10-02T17-50-41Z-cpuv1# 启动容器
docker run ^
--name minio ^
-p 9000:9000 -p 9001:9001 ^
-e "MINIO_ROOT_USER=minio" ^
-e "MINIO_ROOT_PASSWORD=minio123" ^
-v D:\Java\MinIO\data:/data ^
minio/minio:RELEASE.2024-10-02T17-50-41Z-cpuv1 server /data --console-address ":9001"

其中,

  • -e "MINIO_ROOT_USER=minio"-e "MINIO_ROOT_PASSWORD=minio":设置环境变量以定义 MinIO 的访问密钥和密钥。MinIO 部署时默认的 root 凭据是 minioadmin:minioadmin

  • -v D:\Java\MinIO\data:/data:将主机的 D:\Java\MinIO\data 目录挂载到容器的 /data 目录,以实现数据持久化。

  • server /data:指示 MinIO 在 /data 目录下运行服务器。

1.2 访问可视化界面

启动 MinIO 服务后,由于 MinIO 控制台 已经内置在 MinIO Server 中 ,我们可以通过 http://localhost:9001 来访问 MinIO 控制台 。

在这里插入图片描述

二、MinIO 客户端 ( Java )

对于应用程序开发人员,MinIO 提供了多种语言的 SDK。可以通过 MinIO 官方文档查看支持的 SDK 列表和使用方法,以便在代码中直接访问 MinIO 服务。

2.1 创建项目并导入依赖

创建 Spring Boot 项目,并根据 MinIO download 页面在 pom.xml 文件中添加 MinIO Java SDK 的依赖。

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

2.2 编写代码

此示例程序主要实现以下三个功能:

  • 连接到对象存储服务器。
  • 在服务器上创建一个存储桶 bucket。
  • 将文件上传到存储桶。

示例代码如下:

public class MinioExample {public static void main(String[] args) {try {// 创建 MinIO 客户端MinioClient minioClient = MinioClient.builder().endpoint("http://127.0.0.1:9000") // MinIO 服务器的 URL.credentials("minio", "minio123") // 访问密钥和密钥.build();// 检查桶 example-bucket 是否已存在String bucketName = "example-bucket";boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());if (!found) {// 如果桶不存在,则创建新桶minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());System.out.println("Bucket created successfully.");} else {System.out.println("Bucket already exists.");}// 上传文件// 该文件作为 objectName 到 MinIO 的桶 example-bucket 中String filePath = "D:\\test.txt";String objectName = "my-file.txt";try (InputStream fileStream = Files.newInputStream(Paths.get(filePath))) {minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(objectName).stream(fileStream, fileStream.available(), -1).contentType("text/plain").build());System.out.println("File uploaded successfully.");}} catch (MinioException e) {System.out.println("Error occurred: " + e);System.out.println("HTTP trace: " + e.httpTrace());} catch (Exception e) {e.printStackTrace();}}
}

2.3 运行代码

在运行代码后,访问 MinIO 控制台 http://localhost:9001 ,可以看到创建的桶以及上传的文件。
在这里插入图片描述

参考资料

minio/minio - Docker Image | Docker Hub

MinIO | Code and downloads to create high performance object storage

Java Quickstart Guide — MinIO Object Storage for Linux

Java Client API Reference — MinIO Object Storage for Linux


http://www.mrgr.cn/news/59283.html

相关文章:

  • 定时任务使用kafka
  • 啤酒游戏—企业经营决策沙盘
  • 【MySQL】表的约束、基本查询、内置函数
  • 纯血鸿蒙的未来前景
  • 加密算法入门:DES S盒输出计算方法
  • pipeline开发笔记
  • class 36 二叉树高频题目 - 上 (不含有树形dp)
  • 【QT】windows 平台 QT6.8 安装
  • C语言笔记(指针题目)例题+图解
  • Ubuntu安装repo
  • B+Tree简介
  • (done) 有服务器的权限时,如何查看服务器监听的端口?
  • Java中的声明和创建
  • 基于Multisim的音频放大电路设计与仿真
  • 【算法】拓扑排序
  • 大模型,多模态大模型面试问题基础记录24/10/24
  • 【SQLite】改善默认输出格式不直观难以阅读问题:通过修改输出设置提升数据可读性
  • JavaScript part2
  • 【mysql进阶】4-3. 页结构
  • stm32 gpio基础操作和中断操作
  • VulkanTutorial(6·VkSwapChainKHR)
  • RV1126音视频学习(二)-----VI模块
  • 【C++开篇】
  • Java中为什么要私有化构造方法
  • linux快速升级cmake(非源码编译)
  • codimd更改登录超时时限