https://www.hxstrive.com/subject/minio/680.htm
https://www.cnblogs.com/hellxz/p/17359828.html#minio客户端方式操作s3
[!quote] MinIO MinIO 是一个对象存储系统
❤️ 安装
bash
docker run --name minio \
-p 9000:9000 \
-p 9001:9001 \
-v /path/to/minio-persistence:/bitnami/minio/data \
-e MINIO_ROOT_USER=用户名
-e MINIO_ROOT_PASSWORD=密码
bitnami/minio:latestminIO 的密码要设置超过 8 位,要不然会报错
- 9000 端口:这是 MinIO 的主要 API 端口,用于数据的对象存储操作。你可以通过这个端口进行文件的上传、下载和管理
- 9001 端口:这是 MinIO 控制台的端口,用于管理界面访问。通过这个端口,你可以使用浏览器访问 MinIO 的管理控制台,进行用户管理、监控等操作
❤️ Java SDK
xml
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.17</version>
</dependency>💛 配置
java
@Configuration
public class MinioClientConfig {
@Bean
public MinioClient minioClient() {
return MinioClient.builder()
.endpoint("http://localhost:9000")
.credentials("root", "pzqPZQ123")
.build();
}
}💛 桶
boolean bucketExists(String bucket)判断桶是否存在
文件
上传
上传时,文件重名会进行覆盖,所以上传时文件名要唯一
从本地文件上传 :
- bucket 是桶名,如果不存在会报错
- object 是上传到 minio 的路径
- filename 是本地路径
java
UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder()
.bucket("test")
.object("Grey_Icons.png")
.filename("E:\\图片\\Grey_Icons.png")
.build();
minioClient.uploadObject(uploadObjectArgs);从文件流上传 :
java
try (InputStream stream = new FileInputStream("E:\\Grey_Icons.png")) {
minioClient.putObject(PutObjectArgs.builder()
.bucket("test")
.object("Grey_Icons_FromStream.png")
.stream(stream, stream.available(), -1)
.build()
);
}从 MultipartFile 上传 :
java
minioClient.putObject(PutObjectArgs.builder()
.bucket("test")
.object(file.getOriginalFilename())
.stream(file.getInputStream(), file.getSize(), -1)
.build()
);查看
- 直接下载
http://localhost:9000/桶名/文件名
删除
java
RemoveObjectArgs removeObjectArgs = RemoveObjectArgs.builder()
.bucket("test")
.object("Grey_Icons.png")
.build();
minioClient.removeObject(removeObjectArgs);下载
java
DownloadObjectArgs downloadObjectArgs = DownloadObjectArgs.builder()
.bucket("test")
.object("Grey_Icons.png")
.filename("D:\\images\\pic2.jpg")
.build();
minioClient.downloadObject(downloadObjectArgs);❤️ 数据迁移
minIO 转 minIO
使用 minIO Client 实现数据迁移
安装 minIO Client :
- Win
- 下载 minIO Client
- 将下载好的 mc.exe 文件放到 C:\Windows 下
- 打开 cmd 运行
mc --version,可以看到版本信息就可以
- Linux
设置源,和目标 :
bash
mc alias set source http://127.0.0.1:9001 minio miniosecret
mc alias set dest http://127.0.0.1:9011 root pzq666666jP10CpiCJ9PKx7EeKrs5 YXnf6FhLNtKkrARyUpfBsatgHoEaz6An4GPCwWtr