7. 对象存储服务MinIO

本文介绍了MinIO,一个基于Apache License v2.0的开源对象存储服务,适用于存储大容量非结构化数据。文章详细讲解了如何通过Docker安装MinIO,创建并配置Spring Boot工程,以及封装MinIO为starter以便于其他微服务使用。
摘要由CSDN通过智能技术生成

对象存储服务MinIO

1. Minio简介

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

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

  • Simple Storage Service简单存储服务)

基本概念

  • bucket – 类比于文件系统的目录
  • Object – 类比文件系统的文件
  • Keys – 类比文件名

官网文档:http://docs.minio.org.cn/docs/

2.快速入门

2.1 Docker安装minio

1.拉取镜像
docker pull minio/minio
2. 创建容器

docker run -p 9000:9000 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" -v /home/data:/data -v /home/config:/root/.minio minio/minio server /data

3.访问minio系统
http://http://192.168.200.130:9000

2. 2 创建工程,导入pom依赖


    <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>

2.3 启动类

package com.heima.mino;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MinioApplication {
   
    public static void main(String[] args) {
   
        SpringApplication.run(MinioApplication.class, args);
    }
}

2.4 创建测试类,上传html文件

package com.heima.test;


import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import java.io.FileInputStream;


/**
 * minio快速入门
 * 把磁盘上的list.html文件上传至minion,并且能够在浏览器访问
 */
public class MinioTest {
   

    public static void main(String[] args) {
   


        try {
   
            //1.准备好要上传到minio的文件
            FileInputStream fis = new FileInputStream("E:\\list.html");
            //2.创建minio客户端,配置连接信息
            MinioClient client = MinioClient.builder().credentials("minio", "minio123")//账号密码
                                                      .endpoint("http://192.168.1.0:9000")//minion地址
                                                      .build();

            //3.上传
            PutObjectArgs putObjectArgs = PutObjectArgs.builder()
                    .object("list.html")//文件名称
                    .contentType("text/html")//文件类型
                    .bucket("leadnews")//桶名
                    .stream(fis, fis.available(), -1)
                    .build();


            client.putObject(putObjectArgs);
            //4.拼接访问地址
            String url = "http://192.168.1.2:9000/leadnews/list.html";
            System.out.println(url);
        } catch (Exception e) {
   
            e.printStackTrace();
        }

    }
}

3. 封装MinIO为starter

3.1 创建heima-file-starter模块,导入依赖

<dependencies>
    <dependency>
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

糖分你俩颗~~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值