对象存储minio的简单示例

介绍

Minio是Apache License v2.0下发布的对象存储服务器。它与Amazon S3云存储服务兼容。它最适合存储非结构化数据,如照片,视频,日志文件,备份和容器/ VM映像。对象的大小可以从几KB到最大5TB
Minio服务器足够轻,可以与应用程序堆栈捆绑在一起,类似于NodeJS,Redis和MySQL。

文档地址 https://docs.minio.io/

简单的存取

1
2
3
4
5
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>3.0.6</version>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public static void main(String[] args) throws NoSuchAlgorithmException, IOException, InvalidKeyException, XmlPullParserException {
try {
// 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象
MinioClient minioClient = new MinioClient("https://play.min.io", "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG");

// 检查存储桶是否已经存在
boolean isExist = minioClient.bucketExists("zhb");
if(isExist) {
System.out.println("Bucket already exists.");
} else {
// 创建一个名为asiatrip的存储桶,用于存储照片的zip文件。
minioClient.makeBucket("zhb");
}

// 使用putObject上传一个文件到存储桶中。
minioClient.putObject("zhb","wx.jpg", "C:\\Users\\19877\\Pictures\\wx.jpg");
System.out.println("上传成功");
// get object given the bucket and object name
InputStream stream = minioClient.getObject("zhb","wx.jpg");

OutputStream outStream = new FileOutputStream("E:\\wx.jpg");
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = stream.read(buffer)) != -1) {
outStream.write(buffer, 0, bytesRead);
}
outStream.close();
stream.close();
} catch(MinioException e) {
System.out.println("Error occurred: " + e);
}
}