什么是minio
一款构建私有云服务的,提供高性能对象云服务(Object Storage Service)的软件
什么是对象存储服务
就是文件存储(包括上传下载)
搭建MinIo服务
- 下载minio.exe服务软件
https://www.minio.org.cn/download.shtml#/kubernetes
- 启动服务
minio.exe server 数据目录(数据的存储目录)
./minio.exe server ./data
- 访问minio的管控台,使用默认账户密码登录
http://127.0.0.1:9000
输入用户名minioadmin
输入密码minioadmin
参考文档:https://www.minio.org.cn/docs/minio/windows/index.html
minio的SDK使用
参考文档:https://min.io/docs/minio/linux/developers/java/minio-java.html?ref=docs-redirect
- 导入坐标
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.7</version>
</dependency>
- 示例代码
import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
import io.minio.errors.MinioException;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
public class FileUploader {
public static void main(String[] args)
throws IOException, NoSuchAlgorithmException, InvalidKeyException {
try {
//创建一个minio客户端对象
MinioClient minioClient =
MinioClient.builder()
.endpoint("https://play.min.io")//添加地址|域名
.credentials("Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG")//添加账户和秘密
.build();
// 创建一个名为'asiatrip'的桶并判断是否已经存在
boolean found =
minioClient.bucketExists(BucketExistsArgs.builder().bucket("asiatrip").build());
if (!found) {
// 如果桶'asiatrip'不存在就创建一个新桶 'asiatrip'.
minioClient.makeBucket(MakeBucketArgs.builder().bucket("asiatrip").build());
} else {
System.out.println("Bucket 'asiatrip' already exists.");
}
// 上传 '/home/user/Photos/asiaphotos.zip' 作为对象名称到桶中
// 'asiatrip'.
minioClient.uploadObject(
UploadObjectArgs.builder()
.bucket("asiatrip")//桶名
.object("asiaphotos-2015.zip")//对象名
.filename("/home/user/Photos/asiaphotos.zip")//文件路径名
.build());
System.out.println(
"'/home/user/Photos/asiaphotos.zip' is successfully uploaded as "
+ "object 'asiaphotos-2015.zip' to bucket 'asiatrip'.");
} catch (MinioException e) {
System.out.println("Error occurred: " + e);
System.out.println("HTTP trace: " + e.httpTrace());
}
}
}