MinIO
1、概述
MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。 它是与 Amazon S3 云存储服务兼容的 API。 使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。
2、服务器的安装及使用
2.1 下载minio.exe
(https://min.io/download)
2.2 启动运行
1、进入 minio.exe 存放目录(D:\minio\data 为你存放静态文件的目录)
cd D:/minio/
2、执行命令
minio.exe server D:\minio\data --console-address ":9001"
2.3 访问
访问地址:http://127.0.0.1:9001
默认的登录账号密码:minioadmin
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.4.3</version>
</dependency>
注意:端口号9000和9001的区别
9000端口用于访问Minio服务 - Java操作Minio的端口
9001用于访问Minio的控制台 - 可视化页面
2.4 在idea中使用Minio
2.3.1 添加依赖
<!-- minion客户端-->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.4.3</version>
</dependency>
2.3.1 编写MinioUtils工具类实现上传和下载
public class MinioUtils {
private static MinioClient minioClient;
static {
// 创建minioClient
minioClient = MinioClient.builder().endpoint("http://127.0.0.1:9000").credentials("minioadmin", "minioadmin").build();
}
/**
* 创建桶
*
* @param bucketName 桶的名称
*/
public static void createBucket(String bucketName) throws Exception {
// 先判断桶是否存在,不存在则创建
if (!minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())) {
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
}
}
/**
* 上传文件
*
* @param bucketName 桶的名称
* @param remotePath 远程要上传文件的路径
* @param localPath 本地文件的路径
*/
public static void upload(String bucketName, String remotePath, String localPath) throws Exception {
minioClient.uploadObject(UploadObjectArgs.builder()
// 指定桶的名字
.bucket(bucketName)
// 上传的远程文件路径 - 相对路径
.object(remotePath)
// 本地文件的路径 - 绝对路径
.filename(localPath)
.build());
}
/**
* 文件下载
*
* @param bucket 桶的名称
* @param remotePath 远程文件路径
* @param downloadPath 下载到本地保存的路径
*/
public static void download(String bucket, String remotePath, String downloadPath) throws Exception {
minioClient.downloadObject(DownloadObjectArgs.builder().bucket(bucket)
.object(remotePath)
.filename(downloadPath)
.build());
}
}
2.3.3 测试代码
public class Main {
public static void main(String[] args) throws Exception {
// 创建桶bucket对象
// MinioUtils.createBucket("myapp");
String bucket = "myapp";
String remotePath = "files/springmvc.pdf";
String localPath = "D://files//springmvc.pdf";
// 上传
// MinioUtils.upload(bucket, remotePath, localPath);
// 下载
MinioUtils.download(bucket, remotePath, localPath);
}
}