如何详细操作minio的安装、部署与使用步骤?

2026-05-24 03:452阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1399个文字,预计阅读时间需要6分钟。

如何详细操作minio的安装、部署与使用步骤?

目录+一、服务器安装MinIO+1. 进行下载+2. 新建MinIO安装目录,执行以下命令:

二、进行访问,并设置桶+1. 访问+2. 创建桶

三、SpringBoot进行实现+1. 引入依赖+2. 在application.yml文件中添加MinIO服务器的配置

目录
  • 一、服务器安装minio
    • 1.进行下载
    • 2.新建minio安装目录,执行如下命令
  • 二、进行访问,并设置桶
    • 1.访问
  • 三、springboot进行实现
    • 1.引入依赖
    • 2.在 application.yml 文件中加入 MinIO 服务器的相关信息
    • 3.创建实体类
    • 4.创建核心配置类
    • 5.上传工具类
    • 6.controller接口
  • 测试
    • 总结

      一、服务器安装minio

      1.进行下载

      下载地址:

      GNU/Linux

      dl.min.io/server/minio/release/linux-amd64/minio

      2.新建minio安装目录,执行如下命令

      mkdir -p /home/minio/data

      把二进制文件上传到安装目录后,执行:

      如何详细操作minio的安装、部署与使用步骤?

      chmod +x minio //给予权限 export MINIO_ACCESS_KEY=minioadmin //创建账号 export MINIO_SECRET_KEY=minioadmin //创建密码 ./minio server /home/minio/data //启动

      后台启动,并打印日志

      nohup ./minio server /home/minio/data > /home/minio/data/minio.log &

      默认的端口为:9000

      自定义端口方式:自定义启动端口号以及控制台端口号,不设置则控制台会自动配置其他端口号,非常不方便

      nohup ./minio server --address :9000 --console-address :9001 /home/minio/data > /home/minio/data/minio.log &

      查看状态

      ps -ef|grep minio

      二、进行访问,并设置桶

      1.访问

      地址:127.0.0.1:9000

      输入账号密码后:

      进行创建桶,名字自取,创建完成后服务器home/minio/data下也会创建这个文件目录

      进行设置:

      必须将规则设置成readwrite ,才可进行读取文件,否则只存或者只能读。

      三、springboot进行实现

      1.引入依赖

      <!-- minio 相关依赖 --> <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>3.0.10</version> </dependency> <!-- alibaba的fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.51</version> </dependency> <!-- thymeleaf模板引擎 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>

      2.在 application.yml 文件中加入 MinIO 服务器的相关信息

      # minio 文件存储配置信息 minio: endpoint: 127.0.0.1:9000 accesskey: minioadmin secretKey: minioadmin

      3.创建实体类

      这一步,我们将配置文件中 minio 的配置信息通过注解的方式注入到 MinioProp 这个实体中,方便后面我们使用

      import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * minio 属性值 */ @Data @Component @ConfigurationProperties(prefix = "minio") public class MinioProp { /** * 连接url */ private String endpoint; /** * 用户名 */ private String accesskey; /** * 密码 */ private String secretKey; }

      4.创建核心配置类

      通过注入 MinIO 服务器的相关配置信息,得到 MinioClient 对象,我们上传文件依赖此对象

      import io.minio.MinioClient; import io.minio.errors.InvalidEndpointException; import io.minio.errors.InvalidPortException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * minio 核心配置类 */ @Configuration @EnableConfigurationProperties(MinioProp.class) public class MinioConfig { @Autowired private MinioProp minioProp; /** * 获取 MinioClient * * @return * @throws InvalidPortException * @throws InvalidEndpointException */ @Bean public MinioClient minioClient() throws InvalidPortException, InvalidEndpointException { return new MinioClient(minioProp.getEndpoint(), minioProp.getAccesskey(), minioProp.getSecretKey()); } }

      5.上传工具类

      import com.alibaba.fastjson.JSONObject; import com.zyxx.email.common.redis.RedisUtil; import com.zyxx.email.utils.DateUtils; import io.minio.MinioClient; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @Slf4j @Component public class MinioUtils { @Autowired private MinioClient client; @Autowired private MinioProp minioProp; /** * 创建bucket * * @param bucketName bucket名称 */ @SneakyThrows public void createBucket(String bucketName) { if (!client.bucketExists(bucketName)) { client.makeBucket(bucketName); } } /** * 上传文件 * * @param file 文件 * @param bucketName 存储桶 * @return */ public JSONObject uploadFile(MultipartFile file, String bucketName) throws Exception { JSONObject res = new JSONObject(); res.put("code", 0); // 判断上传文件是否为空 if (null == file || 0 == file.getSize()) { res.put("msg", "上传文件不能为空"); return res; } try { // 判断存储桶是否存在 createBucket(bucketName); // 文件名 String originalFilename = file.getOriginalFilename(); // 新的文件名 = 存储桶名称_时间戳.后缀名 String fileName = bucketName + "_" + System.currentTimeMillis() + originalFilename.substring(originalFilename.lastIndexOf(".")); // 开始上传 client.putObject(bucketName, fileName, file.getInputStream(), file.getContentType()); res.put("code", 1); res.put("msg", minioProp.getEndpoint() + "/" + bucketName + "/" + fileName); return res; } catch (Exception e) { log.error("上传文件失败:{}", e.getMessage()); } res.put("msg", "上传失败"); return res; } }

      6.controller接口

      import com.alibaba.fastjson.JSONObject; import com.zyxx.email.common.minio.MinioUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @Controller public class MinioController { @Autowired private MinioUtils minioUtils; /** * 上传 * * @param file * @param request * @return */ @PostMapping("/upload") @ResponseBody public String upload(@RequestParam(name = "file", required = false) MultipartFile file, HttpServletRequest request) { JSONObject res = null; try { res = minioUtils.uploadFile(file, "product"); } catch (Exception e) { e.printStackTrace(); res.put("code", 0); res.put("msg", "上传失败"); } return res.toJSONString(); } }

      测试

      通过网址进行访问:

      PostMan进行测试上传;

      删除文件:

      //文件删除 @DeleteMapping public String delete(String name) { try { MinioClient minioClient = new MinioClient(ENDPOINT, ACCESSKEY, SECRETKEY); minioClient.removeObject(BUCKETNAME, name); } catch (Exception e) { return "删除失败"+e.getMessage(); } return "删除成功"; }

      总结

      到此这篇关于minio安装部署及使用的文章就介绍到这了,更多相关minio安装部署使用内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

      本文共计1399个文字,预计阅读时间需要6分钟。

      如何详细操作minio的安装、部署与使用步骤?

      目录+一、服务器安装MinIO+1. 进行下载+2. 新建MinIO安装目录,执行以下命令:

      二、进行访问,并设置桶+1. 访问+2. 创建桶

      三、SpringBoot进行实现+1. 引入依赖+2. 在application.yml文件中添加MinIO服务器的配置

      目录
      • 一、服务器安装minio
        • 1.进行下载
        • 2.新建minio安装目录,执行如下命令
      • 二、进行访问,并设置桶
        • 1.访问
      • 三、springboot进行实现
        • 1.引入依赖
        • 2.在 application.yml 文件中加入 MinIO 服务器的相关信息
        • 3.创建实体类
        • 4.创建核心配置类
        • 5.上传工具类
        • 6.controller接口
      • 测试
        • 总结

          一、服务器安装minio

          1.进行下载

          下载地址:

          GNU/Linux

          dl.min.io/server/minio/release/linux-amd64/minio

          2.新建minio安装目录,执行如下命令

          mkdir -p /home/minio/data

          把二进制文件上传到安装目录后,执行:

          如何详细操作minio的安装、部署与使用步骤?

          chmod +x minio //给予权限 export MINIO_ACCESS_KEY=minioadmin //创建账号 export MINIO_SECRET_KEY=minioadmin //创建密码 ./minio server /home/minio/data //启动

          后台启动,并打印日志

          nohup ./minio server /home/minio/data > /home/minio/data/minio.log &

          默认的端口为:9000

          自定义端口方式:自定义启动端口号以及控制台端口号,不设置则控制台会自动配置其他端口号,非常不方便

          nohup ./minio server --address :9000 --console-address :9001 /home/minio/data > /home/minio/data/minio.log &

          查看状态

          ps -ef|grep minio

          二、进行访问,并设置桶

          1.访问

          地址:127.0.0.1:9000

          输入账号密码后:

          进行创建桶,名字自取,创建完成后服务器home/minio/data下也会创建这个文件目录

          进行设置:

          必须将规则设置成readwrite ,才可进行读取文件,否则只存或者只能读。

          三、springboot进行实现

          1.引入依赖

          <!-- minio 相关依赖 --> <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>3.0.10</version> </dependency> <!-- alibaba的fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.51</version> </dependency> <!-- thymeleaf模板引擎 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>

          2.在 application.yml 文件中加入 MinIO 服务器的相关信息

          # minio 文件存储配置信息 minio: endpoint: 127.0.0.1:9000 accesskey: minioadmin secretKey: minioadmin

          3.创建实体类

          这一步,我们将配置文件中 minio 的配置信息通过注解的方式注入到 MinioProp 这个实体中,方便后面我们使用

          import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * minio 属性值 */ @Data @Component @ConfigurationProperties(prefix = "minio") public class MinioProp { /** * 连接url */ private String endpoint; /** * 用户名 */ private String accesskey; /** * 密码 */ private String secretKey; }

          4.创建核心配置类

          通过注入 MinIO 服务器的相关配置信息,得到 MinioClient 对象,我们上传文件依赖此对象

          import io.minio.MinioClient; import io.minio.errors.InvalidEndpointException; import io.minio.errors.InvalidPortException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * minio 核心配置类 */ @Configuration @EnableConfigurationProperties(MinioProp.class) public class MinioConfig { @Autowired private MinioProp minioProp; /** * 获取 MinioClient * * @return * @throws InvalidPortException * @throws InvalidEndpointException */ @Bean public MinioClient minioClient() throws InvalidPortException, InvalidEndpointException { return new MinioClient(minioProp.getEndpoint(), minioProp.getAccesskey(), minioProp.getSecretKey()); } }

          5.上传工具类

          import com.alibaba.fastjson.JSONObject; import com.zyxx.email.common.redis.RedisUtil; import com.zyxx.email.utils.DateUtils; import io.minio.MinioClient; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @Slf4j @Component public class MinioUtils { @Autowired private MinioClient client; @Autowired private MinioProp minioProp; /** * 创建bucket * * @param bucketName bucket名称 */ @SneakyThrows public void createBucket(String bucketName) { if (!client.bucketExists(bucketName)) { client.makeBucket(bucketName); } } /** * 上传文件 * * @param file 文件 * @param bucketName 存储桶 * @return */ public JSONObject uploadFile(MultipartFile file, String bucketName) throws Exception { JSONObject res = new JSONObject(); res.put("code", 0); // 判断上传文件是否为空 if (null == file || 0 == file.getSize()) { res.put("msg", "上传文件不能为空"); return res; } try { // 判断存储桶是否存在 createBucket(bucketName); // 文件名 String originalFilename = file.getOriginalFilename(); // 新的文件名 = 存储桶名称_时间戳.后缀名 String fileName = bucketName + "_" + System.currentTimeMillis() + originalFilename.substring(originalFilename.lastIndexOf(".")); // 开始上传 client.putObject(bucketName, fileName, file.getInputStream(), file.getContentType()); res.put("code", 1); res.put("msg", minioProp.getEndpoint() + "/" + bucketName + "/" + fileName); return res; } catch (Exception e) { log.error("上传文件失败:{}", e.getMessage()); } res.put("msg", "上传失败"); return res; } }

          6.controller接口

          import com.alibaba.fastjson.JSONObject; import com.zyxx.email.common.minio.MinioUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @Controller public class MinioController { @Autowired private MinioUtils minioUtils; /** * 上传 * * @param file * @param request * @return */ @PostMapping("/upload") @ResponseBody public String upload(@RequestParam(name = "file", required = false) MultipartFile file, HttpServletRequest request) { JSONObject res = null; try { res = minioUtils.uploadFile(file, "product"); } catch (Exception e) { e.printStackTrace(); res.put("code", 0); res.put("msg", "上传失败"); } return res.toJSONString(); } }

          测试

          通过网址进行访问:

          PostMan进行测试上传;

          删除文件:

          //文件删除 @DeleteMapping public String delete(String name) { try { MinioClient minioClient = new MinioClient(ENDPOINT, ACCESSKEY, SECRETKEY); minioClient.removeObject(BUCKETNAME, name); } catch (Exception e) { return "删除失败"+e.getMessage(); } return "删除成功"; }

          总结

          到此这篇关于minio安装部署及使用的文章就介绍到这了,更多相关minio安装部署使用内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!