• 周六. 10 月 5th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

CNCF对象存储工具之MinIO:5:使用Java API操作MinIO

King Wang

1 月 3, 2022

在这里插入图片描述
在上篇文章中介绍了使用mc客户端操作MinIO的方式,实际上也可以使用其他语言和MinIO进行集成,目前MinIO可以通过Java、JavaScript、Python、Go以及.Net等方式进行集成。这篇文章通过一个示例来介绍一下所提供的Java API的使用方式。

目录

  • MinIO Java Client SDK
  • JDK版本要求
  • Pom文件使用方法
    • Maven方式
    • Gradle方式
    • Maven仓库地址
  • MinIO服务器端安装设定
  • MinIO客户端安装设定
  • 使用示例
    • Pom文件
    • 代码示例
    • 执行与结果确认
  • 注意事项
  • 总结

MinIO Java Client SDK

MinIO Java Client SDK通过提供API的方式来访问和操作MinIO,同时可以操作Amazon S3以及与其兼容的对象存储。

JDK版本要求

JDK需要Java 1.8或更高版本,如下版本为最低JDK版本:

  • OracleJDK 8.0
  • OpenJDK8.0

Pom文件使用方法

Maven方式

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

Gradle方式

dependencies {
compile 'io.minio:minio:7.1.4'
}

Maven仓库地址

  • https://repo1.maven.org/maven2/io/minio/minio/7.1.4/

MinIO服务器端安装设定

详细可参看:https://liumiaocn.blog.csdn.net/article/details/109450407

MinIO客户端安装设定

详细可参看:https://liumiaocn.blog.csdn.net/article/details/109455360

使用示例

Pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>liumiaocn</groupId>
<artifactId>minio</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>3.0.10</version>
</dependency>
</dependencies>
</project>

代码示例

import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.security.InvalidKeyException;
import org.xmlpull.v1.XmlPullParserException;
import io.minio.MinioClient;
import io.minio.errors.MinioException;
public class MinIOFileUploader {

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

try {

// 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
MinioClient minioClient = new MinioClient("http://localhost:9000", "liumiao", "password");
// 检查存储桶是否已经存在
boolean isExist = minioClient.bucketExists("newbucket");
if(isExist) {

System.out.println("Bucket already exists.");
} else {

// 创建一个名为newbucket的存储桶。
minioClient.makeBucket("newbucket");
}
// 使用putObject上传一个文件到存储桶中。
minioClient.putObject("newbucket","local-file-list.info", "/Users/liumiao/local-file-list.info");
System.out.println("/Users/liumiao/local-file-list.info is successfully uploaded as local-file-list.info to `newbucket` bucket.");
} catch(MinioException e) {

System.out.println("Error occurred: " + e);
}
}
}

执行与结果确认

  • 执行上述程序

在这里插入图片描述
然后从MinIO中就可以看到创建的新存储桶和文件的信息了
在这里插入图片描述

注意事项

中文官方文档中仍然使用的是3.0.10的API,功能验证时直接使用了此版本,最新的7.1.4中有一些使用方式已经发生了变化。新版本的使用方式已经验证,详细可参看:

  • https://liumiaocn.blog.csdn.net/article/details/109460974

总结

这篇文章介绍了如何利用MinIO提供的Java API进行存储桶检查、创建以及文件的上传。

发表回复