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张图片
    MinIO_第2张图片

使用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
    MinIO_第3张图片

入门案例:

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

依赖

 <dependencies>
        <dependency>
            <groupId>io.miniogroupId>
            <artifactId>minioartifactId>
            <version>7.1.0version>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>

        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
        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_第4张图片
注意 如果文件上传成功后不能访问,则需要一个权限
MinIO_第5张图片

将MinIO封装为starter

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

你可能感兴趣的:(java,ide,spring,cloud)