使用Minio存储文件对象
一. Docker拉取镜像(确保自己的服务器已经安装Docker)
1 | docker pull minio/minio |
二. 启动一个miniio容器
1 | docker run --name minio -p 9090:9000 -p 9999:9999 -d \ |
账号是minio; 密码是minio123
三. 访问minio管理界面
端口9090或9999(确保在服务器放行相关端口即可访问)
点击 create a Bucket 创建一个bucket(桶), 这里的Bucket 我们可以理解为文件存储的目录
输入 bucket name ,点击create bucket 。可以通过 upload 上传文件到bucket中。
四. Java 上传文件到minio
导入依赖
1
2
3
4
5<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.1.0</version>
</dependency>测试类(需要输入自己的账号密码和IP)
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
33
34
35
36
37
38
39
40
41import io.minio.MinioClient;
import io.minio.ObjectWriteResponse;
import io.minio.PutObjectArgs;
import io.minio.errors.MinioException;
import java.io.File;
import java.io.FileInputStream;
/**
* @author lqs
* @date 2022/11/18 9:53
*/
public class MinioTest {
public static void main(String[] args) throws Exception {
try {
// 构建一个Minio客户端
MinioClient minioClient = MinioClient.builder()
//创建容器时指定的账号
.credentials("账号", "密码")
//上传地址
.endpoint("http://IP:9090").build();
File file = new File("C:\\Users\\coderyeah\\Desktop\\welt.jpg");
PutObjectArgs putObjectArgs = PutObjectArgs.builder()
.object("welt.jpg") //文件名
.contentType("image/jpeg") //文件类型
.bucket("bucket-test") //存储目录名
.stream(new FileInputStream(file), file.length(), -1).build(); //文件流,以及大小,-1代表不分片
//执行上传
ObjectWriteResponse objectWriteResponse = minioClient.putObject(putObjectArgs);
System.out.println("上传结果 " + objectWriteResponse);
//上传之后的文件地址是:
String filePath = "http://IP:9090/bucket-test/welt.jpg";
} catch (MinioException e) {
System.out.println("Error occurred: " + e);
}
}
}
五. 配置权限
如果我们需要我们上传的文件可以被匿名用户访问,那么需要添加访问权限:找到文件存储目录,点击manager
然后找到access Rules添加访问规则如下:
评论