赞
踩
概述:这种东西,多写点,方便以后自己使用
目录
注意:倘若使用低版本去调用高版本的minio,可能还是要设置MINIO_ACCESS_KEY和MINIO_SECRET_KEY的
docker pull minio/minio
MinIO需要一个用于持久化存储的卷。创建一个目录,并使用docker volume create
命令创建一个Docker卷:
- mkdir ~/minio-storage # 在用户主目录下创建一个用于存储的目录
- docker volume create minio-data # 创建一个名为minio-data的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"
通过浏览器访问 http://localhost:40753
可以看到非常的帅气
输入之前设置好的 root 和 123456789
这里就成功的部署完毕了。
完美命令如下:
这里为了方便,我设置一样的,都是root和123456789 MINIO_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"
比如说这里我就创建了一个叫user01的bucket
首先,在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控制页面
上传成功。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。