第一步:docker安装配置minio
第一步:拉取镜像
docker pull minio/minio
第二步:创建用于存储minio数据的卷
minio需要一个用于持久化存储的卷。创建一个目录,并使用docker volume create命令创建一个docker卷:
mkdir ~/minio-storage # 在用户主目录下创建一个用于存储的目录 docker volume create minio-data # 创建一个名为minio-data的docker卷
如果是最新版minio直接就使用最后的那个命令创建容器
下面是老版的操作
第三步:运行minio docker容器
docker run -p 9000:9000 --name minio -e "minio_access_key=your-access-key" -e "minio_secret_key=your-secret-key" -v minio-data:/data minio/minio server /data
替换your-access-key和your-secret-key为您选择的自定义访问密钥和秘密密钥。
注意: access key length should be at least 3, and secret key length at least 8 characters
就是your-access-key必须大于3,your-secret-key必须大于8
比如说,我要自定义 your-access-key为123456 和 your-secret-key为123456789
docker run -p 9000:9000 --name minio -e "minio_access_key=123456" -e "minio_secret_key=123456789" -v minio-data:/data minio/minio server /data
这样是可以运行的,但minio_access_key和minio_secret_key已经被弃用,建议使用minio_root_user和minio_root_password。同时,控制台端点正在监听一个动态端口(40753),建议使用–console-address ":port"来选择一个静态端口。
注意
新版mino是这样的。
api: http://172.17.0.3:9000 http://127.0.0.1:9000 api是9000端口 console: http://172.17.0.3:40753 http://127.0.0.1:40753 console是40753端口 documentation: https://docs.min.io
所以:真正的代码如下
比如说,我要自定义 minio_root_user为root 和 minio_root_password为123456789
docker run -p 9000:9000 -p 40753:40753 --name minio ? -e "minio_root_user=root" ? -e "minio_root_password=123456789" ? -v minio-data:/data ? minio/minio server /data --console-address ":40753"
第五步:访问minioweb
通过浏览器访问 http://localhost:40753

可以看到非常的帅气
第六步:登录
输入之前设置好的 root 和 123456789

这里就成功的部署完毕了。
注意:倘若使用低版本去调用高版本的minio,可能还是要设置minio_access_key和minio_secret_key的
完美命令如下:
这里为了方便,我设置一样的,都是root和123456789minio_access_key是root,minio_secret_key也是123456789
docker run -p 9000:9000 -p 40753:40753 --name minio -e "minio_root_user=root" -e "minio_root_password=123456789" -e "minio_access_key=root" -e "minio_secret_key=123456789" -v minio-data:/data minio/minio server /data --console-address ":40753"
创建一个buckets

比如说这里我就创建了一个叫user01的bucket

第二步:springboot整合minio
首先,在pom.xml文件中添加minio的依赖:
<dependency>
<groupid>io.minio</groupid>
<artifactid>minio</artifactid>
<version>8.3.6</version>
</dependency>
在application.properties文件中配置minio的相关参数:
minio.endpoint=http://localhost:9000 minio.access-key=your_access_key minio.secret-key=your_secret_key minio.bucket-name=your-bucket-name
由于我上面创建minio的时候已经设置好了,bucket-name=user01
server.port=8080 minio.endpoint=http://localhost:9000 minio.access-key=root minio.secret-key=123456789 minio.bucket-name=user01
创建一个minioconfig类,用于加载minio的配置信息:
package org.cyl.spaceutils.config;
import io.minio.minioclient;
import org.springframework.beans.factory.annotation.value;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
@configuration
public class minioconfig {
@value("${minio.endpoint}")
private string minioendpoint;
@value("${minio.access-key}")
private string minioaccesskey;
@value("${minio.secret-key}")
private string miniosecretkey;
@bean
public minioclient minioclient() {
return minioclient.builder()
.endpoint(minioendpoint)
.credentials(minioaccesskey, miniosecretkey)
.build();
}
}在编写一个controller类即可
package org.cyl.spaceutils.controller;
import io.minio.minioclient;
import io.minio.errors.minioexception;
import io.minio.putobjectargs;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.beans.factory.annotation.value;
import org.springframework.boot.autoconfigure.springbootapplication;
import org.springframework.web.bind.annotation.postmapping;
import org.springframework.web.bind.annotation.requestparam;
import org.springframework.web.bind.annotation.restcontroller;
import org.springframework.web.multipart.multipartfile;
import java.io.ioexception;
import java.io.inputstream;
import java.security.invalidkeyexception;
import java.security.nosuchalgorithmexception;
@springbootapplication
@restcontroller
public class miniodemocontroller {
@autowired
private minioclient minioclient;
@value("${minio.bucket-name}")
private string bucketname;
@postmapping("/upload")
public string uploadfile(@requestparam("file") multipartfile file) {
try {
inputstream inputstream = file.getinputstream();
minioclient.putobject(
putobjectargs.builder()
.bucket(bucketname)
.object(file.getoriginalfilename())
.stream(inputstream, inputstream.available(), -1)
.contenttype(file.getcontenttype())
.build()
);
return "file uploaded successfully!";
} catch (minioexception | ioexception | nosuchalgorithmexception | invalidkeyexception e) {
e.printstacktrace();
return "error uploading file to minio: " + e.getmessage();
}
}
}现在,你可以运行这个spring boot应用,并通过/upload接口上传文件到minio。
修改一下tomcat上传文件的大小配置
# 设置单个文件大小 spring.servlet.multipart.max-file-size= 50mb # 设置单次请求文件的总大小 spring.servlet.multipart.max-request-size= 50mb

第三步:编写前端进行测试
前端代码
<!doctype html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文件上传</title>
</head>
<body>
<h1>文件上传</h1>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" required>
<button type="submit">上传</button>
</form>
</body>
</html>

上传成功,查看minio控制页面


上传成功。
到此这篇关于springboot整合新版minio和minio的安装完整教程(新人必看)的文章就介绍到这了,更多相关springboot minio安装内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论