当前位置:   article > 正文

springboot整合最新版minio和minio的安装(完整教程,新人必看)_minio最新版spring依赖

minio最新版spring依赖

概述:这种东西,多写点,方便以后自己使用

目录

第一步:docker安装配置minio

第一步:拉取镜像

第二步:创建用于存储MinIO数据的卷

如果是最新版minio直接就使用最后的那个命令创建容器

第三步:运行MinIO Docker容器

注意

所以:真正的代码如下

第五步:访问minioWeb

第六步:登录

注意:倘若使用低版本去调用高版本的minio,可能还是要设置MINIO_ACCESS_KEY和MINIO_SECRET_KEY的

创建一个buckets

第二步:springboot整合minio

第三步:编写前端进行测试


第一步:docker安装配置minio

第一步:拉取镜像

docker pull minio/minio

第二步:创建用于存储MinIO数据的卷

MinIO需要一个用于持久化存储的卷。创建一个目录,并使用docker volume create命令创建一个Docker卷:

  1. mkdir ~/minio-storage # 在用户主目录下创建一个用于存储的目录
  2. 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-keyyour-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和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"

创建一个buckets

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

第二步:springboot整合minio

首先,在pom.xml文件中添加MinIO的依赖:

  1. <dependency>
  2. <groupId>io.minio</groupId>
  3. <artifactId>minio</artifactId>
  4. <version>8.3.6</version>
  5. </dependency>

application.properties文件中配置MinIO的相关参数:

  1. minio.endpoint=http://localhost:9000
  2. minio.access-key=YOUR_ACCESS_KEY
  3. minio.secret-key=YOUR_SECRET_KEY
  4. minio.bucket-name=your-bucket-name

由于我上面创建minio的时候已经设置好了,bucket-name=user01

  1. server.port=8080
  2. minio.endpoint=http://localhost:9000
  3. minio.access-key=root
  4. minio.secret-key=123456789
  5. minio.bucket-name=user01

创建一个MinioConfig类,用于加载MinIO的配置信息:

  1. package org.cyl.spaceutils.config;
  2. import io.minio.MinioClient;
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. @Configuration
  7. public class MinioConfig {
  8. @Value("${minio.endpoint}")
  9. private String minioEndpoint;
  10. @Value("${minio.access-key}")
  11. private String minioAccessKey;
  12. @Value("${minio.secret-key}")
  13. private String minioSecretKey;
  14. @Bean
  15. public MinioClient minioClient() {
  16. return MinioClient.builder()
  17. .endpoint(minioEndpoint)
  18. .credentials(minioAccessKey, minioSecretKey)
  19. .build();
  20. }
  21. }

在编写一个controller类即可

  1. package org.cyl.spaceutils.controller;
  2. import io.minio.MinioClient;
  3. import io.minio.errors.MinioException;
  4. import io.minio.PutObjectArgs;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.beans.factory.annotation.Value;
  7. import org.springframework.boot.autoconfigure.SpringBootApplication;
  8. import org.springframework.web.bind.annotation.PostMapping;
  9. import org.springframework.web.bind.annotation.RequestParam;
  10. import org.springframework.web.bind.annotation.RestController;
  11. import org.springframework.web.multipart.MultipartFile;
  12. import java.io.IOException;
  13. import java.io.InputStream;
  14. import java.security.InvalidKeyException;
  15. import java.security.NoSuchAlgorithmException;
  16. @SpringBootApplication
  17. @RestController
  18. public class MinioDemoController {
  19. @Autowired
  20. private MinioClient minioClient;
  21. @Value("${minio.bucket-name}")
  22. private String bucketName;
  23. @PostMapping("/upload")
  24. public String uploadFile(@RequestParam("file") MultipartFile file) {
  25. try {
  26. InputStream inputStream = file.getInputStream();
  27. minioClient.putObject(
  28. PutObjectArgs.builder()
  29. .bucket(bucketName)
  30. .object(file.getOriginalFilename())
  31. .stream(inputStream, inputStream.available(), -1)
  32. .contentType(file.getContentType())
  33. .build()
  34. );
  35. return "File uploaded successfully!";
  36. } catch (MinioException | IOException | NoSuchAlgorithmException | InvalidKeyException e) {
  37. e.printStackTrace();
  38. return "Error uploading file to MinIO: " + e.getMessage();
  39. }
  40. }
  41. }
 

现在,你可以运行这个Spring Boot应用,并通过/upload接口上传文件到MinIO。

修改一下tomcat上传文件的大小配置

  1. # 设置单个文件大小
  2. spring.servlet.multipart.max-file-size= 50MB
  3. # 设置单次请求文件的总大小
  4. spring.servlet.multipart.max-request-size= 50MB

第三步:编写前端进行测试

前端代码

  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>文件上传</title>
  7. </head>
  8. <body>
  9. <h1>文件上传</h1>
  10. <form action="/upload" method="post" enctype="multipart/form-data">
  11. <input type="file" name="file" required>
  12. <button type="submit">上传</button>
  13. </form>
  14. </body>
  15. </html>

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

上传成功。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/577375
推荐阅读
相关标签
  

闽ICP备14008679号