javalicense开源_MinIO:⼀个基于ApacheLicensev2.0开源协
议。。。
MinIO Quickstart Guide--快速⼊门
MinIO 是⼀个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接⼝,⾮常适合于存储⼤容量⾮结构化的数据,例如图⽚、视频、⽇志⽂件、备份数据和容器/虚拟机镜像等,⽽⼀个对象⽂件可以是任意⼤⼩,从⼏kb到最⼤5T不等。
MinIO是⼀个⾮常轻量的服务,可以很简单的和其他应⽤的结合,类似 NodeJS, Redis 或者 MySQL。
Minio的安装[Docker]与使⽤
1.查询并下载镜像
docker search minio/minio
docker pull minio/minio [lastest] --最新版本
2.创建并启动容器--指定对应的AK 、Sk
Docker中运⾏MinIO单点模式:
MinIO 需要⼀个持久卷来存储配置和应⽤数据。不过, 如果只是为了测试⼀下, 您可以通过简单地传递⼀个⽬录(在下⾯的⽰例中为/ data)启动MinIO。这个⽬录会在容器启动时在容器的⽂件系统中创建,不过所有的数据都会在容器退出时丢失。
docker run -d -p 9000:9000 --name minio-service minio/minio server /data
要创建具有永久存储的MinIO容器,您需要将本地持久⽬录从主机操作系统映射到虚拟配置~/.minio 并导出/data⽬录。 为此,请运⾏以下命令;
docker run -p 9000:9000 --name minio-service -v /mnt/data:/data -v /mnt/config:/root/.minio minio/minio server /data
MinIO⾃定义Access和Secret密钥:要覆盖MinIO的⾃动⽣成的密钥,您可以将Access和Secret密钥设为环境变量。 MinIO允许常规字符串作为Access和Secret密钥
docker run -d -p 9000:9000 --name minio-service -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" -e
"MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" minio/minio server /data
3.获取容器ID
在容器中使⽤Docker命令, 你需要知道这个容器的 容器ID 。 为了获取 Container ID, 运⾏
docker ps -a
-a flag 确保你获取所有的容器(创建的,正在运⾏的,退出的),然后从输出中识别Container ID。
4.启动和停⽌容器
启动容器,你可以使⽤ docker start 命令。
docker start
停⽌⼀下正在运⾏的容器, 使⽤ docker stop 命令。
docker stop
5.MinIO容器⽇志
获取MinIO⽇志,使⽤ docker logs 命令。
docker logs
6.监控MinioDocker容器
监控MinIO容器使⽤的资源,使⽤ docker stats 命令.
docker stats `
基于java语⾔的客户端集成(实例)
1.引⼊对应的依赖
io.minio
minio
3.0.10
2.配置minio的相关配置[.yml]
minio:
access-key: AKIAIOSFODNN7EXAMPLE
secret-key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
bucket-name: test
3.编写minio的⼯具类
@Component
@Slf4j
public class MinioClientUtils {
@Value("${minio.access-key}")
private String accessKey;
@Value("${minio.secret-key}")
private String secretKey;
@Value("${minio.bucket-name}")
private String bucketName;
@Value("${dpoint}")
private String endpoint;
private MinioClient minioClient;
/**
* 上传内容类型
*/
private static final String CONTENT_TYPE = "application/octet-stream";
@PostConstruct
public void init() {
log.info("---初始化minio客户端---");
try {
// 使⽤MinIO服务的URL,端⼝,Access key和Secret key创建⼀个MinioClient对象
minioClient = new MinioClient(endpoint, accessKey, secretKey);
} catch (Exception e) {
<("---初始化minio客户端异常,message={}---", e.getMessage());
}
}
/**
* 上传⽂件到minio
*
* @param fileName 保存⽂件名
* @param inputStream ⽂件字节流
*/
public ResponseResult putFileToMinio(String fileName, InputStream inputStream) { try {
// 检查存储桶是否已经存在,不存在创建存储桶
下载apache
if (!minioClient.bucketExists(bucketName)) {
minioClient.makeBucket(bucketName);
//修改bucketName读写权限
minioClient.setBucketPolicy(bucketName, "*", PolicyType.READ_WRITE);
}
/
/ 使⽤putObject上传⼀个⽂件到存储桶中。
minioClient.putObject(bucketName, fileName, inputStream, CONTENT_TYPE);
//获取url
String objectUrl = ObjectUrl(bucketName, fileName);
log.info("---成功上传⽂件到Minio,objectUrl={} ---", objectUrl);
return ResponseResult.success(objectUrl);
} catch (Exception e) {
<("---上传⽂件到Minio异常,message={}---", e.getMessage());
return ResponseResult.fail("上传⽂件到Minio异常");
}
}
}
4.测试结果实例

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。