杂七杂八之MinIO连接和文件下载
杂七杂八之MinIO连接和文件下载
MinIO 是一个高性能的对象存储服务,兼容 Amazon S3 的 API。本文将介绍如何通过 Java 连接到 MinIO 服务器,并实现文件的上传和下载功能。
1. 前期准备
1.1 环境要求
确保你已经满足以下环境要求:
● Java 8 及以上
● Maven
● MinIO 服务器
1.2 添加依赖
在你的 Java 项目中,你需要添加 MinIO 的 SDK 依赖。使用 Maven 的话,需要在 pom.xml 文件中添加以下依赖:
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.3.9</version> <!-- 请使用最新版本 -->
</dependency>
2. 连接到 MinIO并且下载文件
使用 MinIO 提供的 SDK 可以方便地建立连接。连接需要 MinIO 的 URL、Access Key 和 Secret Key。
2.1 连接示例代码
import io.minio.MinioClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static com.dahua.llmanalysis.utils.Configs.*;
/**
* @author Sam Zhang
* @date 2024-11-05 17:17:41
* @since 0.0.1
* 注释:调用minio库对接相应库
*/
public class ConnectMinio {
private final Logger log = LoggerFactory.getLogger(this.getClass());
/**
* @author Sam Zhang(27988)
* @date 2024/11/6 9:36
* @Description: 调用minio库对接相应库
* @param:
* @return * @return io.minio.MinioClient
*/
public MinioClient connectMinio(){
MinioClient minioClient = null;
try{
minioClient = MinioClient.builder()
.endpoint("http://" + MINIOADDRESS + ":" + MINIOPORT)
.credentials(ACCESSKEY, SECRETKEY)
.build();
}catch (Exception e){
e.printStackTrace();
}
if(minioClient != null){
log.info("minio连接成功");
}else{
log.info("minio连接失败");
}
return minioClient;
}
}
2.2 下载文件
import io.minio.DownloadObjectArgs;
import io.minio.MinioClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Sam Zhang
* @date 2024-11-05 17:14:41
* @since 0.0.1
* 注释:下载对应文件
*/
public class GetMinioFile {
private final Logger log = LoggerFactory.getLogger(this.getClass());
/**
* @author Sam Zhang
* @date 2024/11/6 10:03
* @Description:
* @param: jobName:性能测试平台上次的时候,json消息中的job信息
* @param: bucketName:下载文件所属的bucketName
* @param: object:下载的文件路径以及文件名称组合
* @return * @return boolean
*/
public boolean getMinioFile(String jobName,String bucketName,String object){
boolean isGetFileSuccess = false;
ConnectMinio connectMinio = new ConnectMinio();
MinioClient minioClient = connectMinio.connectMinio();
try{
minioClient.downloadObject(
DownloadObjectArgs.builder()
.bucket(bucketName)
.object(object)
.filename("files/" + jobName + ".log")
.build()
);
log.info(jobName + ".log下载完成,目录:files");
isGetFileSuccess = true;
}catch (Exception e){
e.printStackTrace();
}
return isGetFileSuccess;
}
}
其中我们需要对上述内容中的bucketName/object/filename做解释
bucketName:指的是MinIO中的bucketName,从MinIO界面上来说就是界面左侧以下内容
object:指的是具体的一个文件,比如bucket为sptp下面,我们需要下载文件jmeter.log,它的完整路径就是:jmeter_report/1025/2276/jmeter.log,注意这里看到的sptp为bucket
filename:指的是你本地存储的文档路径,比如我的工厂代码结构如下
所以上述代码中,我们的保存路径为
.filename("files/" + jobName + ".log")
3. 结论
本文介绍了如何通过 Java 连接到 MinIO,并实现基本的文件上传和下载功能。MinIO 提供了与 S3 一致的 API,使得在对象存储系统之间迁移变得更加简单。希望这篇文章能够帮助你快速上手 MinIO 的基本操作。
原文地址:https://blog.csdn.net/u012151594/article/details/143615190
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!