minio安装和使用
中文官网文档: https://docs.min.io/cn/
英文官网文档: https://docs.min.io
介绍参考: https://www.jianshu.com/p/cbd1d8cac6f0
minio
GitHub
地址: https://github.com/minio/minio
源码地址: https://github.com/gl-stars/small-study-case/tree/master/nm-demo/classicsCase-demo/src/main/java/com/classics/controller
一、Docker环境下安装(单机)
参考: https://docs.min.io/cn/minio-docker-quickstart-guide.html
- 创建文件夹保存资源
mkdir -p /app/cloud/minio/data
mkdir -p /app/cloud/minio/config
# 给予权限
chmod -R 777 /app/cloud/minio/data
chmod -R 777 /app/cloud/minio/config
- 创建
minio
启动脚本
mkdir -p /opt/docker
vim /opt/docker/minio.sh
- 写入启动脚本数据
docker stop minio
docker rm minio
docker run -d -p 9000:9000 \
--name minio \
-e "MINIO_ACCESS_KEY=minio" \
-e "MINIO_SECRET_KEY=Aa123456" \
-v /app/cloud/minio/data:/data \
-v /app/cloud/minio/config:/root/.minio \
minio/minio server /data
MINIO_ACCESS_KEY
和MINIO_SECRET_KEY
相当于用户名和密码,上传资源时需要使用到。
- 启动脚本
因为我使用的是docker
安装,所以不用直接去拉去镜像。我们可以直接启动这个脚本,会自动拉去镜像的。
sh /opt/docker/minio.sh
- 浏览器访问
注意需要将9000
端口开放。
http://主机IP:9000
二、java
程序上传和删除资源
2.1、引入依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.1.0</version>
</dependency>
2.2、创建对象保存资源相关信息
package com.classics.dto;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* Minio Bucket访问策略配置
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Builder
public class BucketPolicyConfigDto {
private String Version;
private List<Statement> Statement;
@Data
@EqualsAndHashCode(callSuper = false)
@Builder
public static class Statement {
private String Effect;
private String Principal;
private String Action;
private String Resource;
}
}
package com.classics.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 文件上传返回结果
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class MinioUploadDto {
/***
* 文件访问URL
*/
private String url;
/**
* 文件名称
*/
private String name;
/***
* 对象存储名称,删除资源的时候需要指定这个名称
*/
private String objectName ;
}
2.3、上传资源类
package com.classics.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 文件上传返回结果
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class MinioUploadDto {
/***
* 文件访问URL
*/
private String url;
/**
* 文件名称
*/
private String name;
/***
* 对象存储名称,删除资源的时候需要指定这个名称
*/
private String objectName ;
}
2.4、配置minio
相关信息
minio:
endpoint: http://服务器IP:9000 #MinIO服务所在地址
bucketName: mall #存储桶名称
accessKey: minio #访问的key
secretKey: Aa123456 #访问的秘钥
逍遥客.: 你要先创建好用户之后再开启登录验证的,你没有创建用户就直接开启登录验证,你用户都没有肯定没法链接。
weixin_37624602: 有点敷衍了!大佬 你创建完成容器之后开启了验证 完全就没法登录进去操作好吧
吹过七海的风: 想问一下我下载之后打开为什么工具栏那块显示的都是代码,比如“文件”显示的是“%file.name%”
Eric Zane: 我的也是容器内无法下载,换了阿里云的源也不行
烟雨江南__: 有点懵