MinIO

MinIO简介

  • MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序,单行命令可以运行起来。

  • MinIO兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

  • 官网文档:http://docs.minio.org.cn/docs/
    在这里插入图片描述
    在这里插入图片描述

使用MinIO

  1. 拉取镜像:docker pull minio/minio
  2. 创建容器docker run -p 9000:9000 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=admin" -e "MINIO_SECRET_KEY=admin" -v /home/data:/data -v /home/config:/root/.minio minio/minio server /data
  3. 访问minio系统:http://192.168.xxx.xx:9000
    在这里插入图片描述

入门案例:

前期准备:
在本地磁盘中有 :E://list.html
在本地E盘有一个 list.html 文件

依赖

 <dependencies>
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>7.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>

开发代码

  public static void main(String[] args) {
        //获取list.html
        try {
            FileInputStream file = new FileInputStream("E://list.html");
            //1.获取minio的链接信息 ,创建客户端
            MinioClient minioClient = MinioClient.builder()
                    .credentials("minio", "minio123")//凭证 用户名和密码
                    .endpoint("http://192.168.200.130:9000").build();
            //2.上传
            PutObjectArgs putObjectArgs = PutObjectArgs.builder()
                    .object("list.html")//文件的名称
                    .contentType("text/html")//文件类型
                    .bucket("leadnews")//minio管理页面创建的桶名称
                    .stream(file, file.available(),-1) //1.  2.文件大小(有文件就会一直传) 3.要传入多少(-1)所有文件
                    .build();
            //上传文件时候需要传入一个对象上面
            minioClient.putObject(putObjectArgs);
            //访问路径
            System.out.println("http://192.168.200.130:9000/leadnews/list.html"); //可以直接点击打开,(可写可不写)

        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }

在这里插入图片描述
注意 如果文件上传成功后不能访问,则需要一个权限
在这里插入图片描述

将MinIO封装为starter

  • 场景
    如果使用文章微服务就要用到文件服务来用上传文件等操作,如果用到评论微服务则也需要文件服务等等 ,集成起来复杂不利于维护;此时就需要把这些微服务抽出来,抽成一个文件服务-starte,只要有文件用到只需要依赖就可以
  • 封装为starter后,可以提供一系列的便捷API和功能,使开发人员更容易地使用MinIO。例如,可以提供一些常用的上传、下载和删除文件的方法,而无需开发人员自己编写复杂的操作代码,减少了在多个项目中重复配置的工作,将MinIO封装为starter后,可以更好地与Spring Boot框架和其他组件进行集成这样,可以将MinIO融入到项目的整体架构中,提高系统的灵活性和可扩展性。
  • 资源以上传 以封装,上传,下载等等功能
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学废Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值