minio安装和使用

官网:https://min.io

中文官网文档:https://docs.min.io/cn/

英文官网文档:https://docs.min.io

介绍参考:https://www.jianshu.com/p/cbd1d8cac6f0

minio GitHub地址:https://github.com/minio/minio

源码地址:https://github.com/gl-stars/small-study-case/tree/master/nm-demo/classicsCase-demo/src/main/java/com/classics/controller

一、Docker环境下安装(单机)

参考:https://docs.min.io/cn/minio-docker-quickstart-guide.html

  • 创建文件夹保存资源
mkdir -p /app/cloud/minio/data
mkdir -p /app/cloud/minio/config
# 给予权限
chmod -R 777 /app/cloud/minio/data
chmod -R 777 /app/cloud/minio/config
  • 创建minio启动脚本
mkdir -p /opt/docker
vim /opt/docker/minio.sh
  • 写入启动脚本数据
docker stop minio
docker rm minio
docker run -d -p 9000:9000 \
    --name minio \
    -e "MINIO_ACCESS_KEY=minio" \
    -e "MINIO_SECRET_KEY=Aa123456" \
    -v /app/cloud/minio/data:/data \
    -v /app/cloud/minio/config:/root/.minio \
    minio/minio server /data

MINIO_ACCESS_KEYMINIO_SECRET_KEY相当于用户名和密码,上传资源时需要使用到。

  • 启动脚本

因为我使用的是docker安装,所以不用直接去拉去镜像。我们可以直接启动这个脚本,会自动拉去镜像的。

sh /opt/docker/minio.sh
  • 浏览器访问

注意需要将9000端口开放。

http://主机IP:9000

在这里插入图片描述

二、java程序上传和删除资源

2.1、引入依赖

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>7.1.0</version>
</dependency>

2.2、创建对象保存资源相关信息

package com.classics.dto;

import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * Minio Bucket访问策略配置
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Builder
public class BucketPolicyConfigDto {

    private String Version;
    private List<Statement> Statement;

    @Data
    @EqualsAndHashCode(callSuper = false)
    @Builder
    public static class Statement {
        private String Effect;
        private String Principal;
        private String Action;
        private String Resource;

    }
}
package com.classics.dto;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 文件上传返回结果
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class MinioUploadDto {
    /***
     * 文件访问URL
     */
    private String url;
    /**
     * 文件名称
     */
    private String name;

    /***
     * 对象存储名称,删除资源的时候需要指定这个名称
     */
    private String objectName ;
}

2.3、上传资源类

package com.classics.dto;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 文件上传返回结果
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class MinioUploadDto {
    /***
     * 文件访问URL
     */
    private String url;
    /**
     * 文件名称
     */
    private String name;

    /***
     * 对象存储名称,删除资源的时候需要指定这个名称
     */
    private String objectName ;
}

2.4、配置minio相关信息

minio:
  endpoint: http://服务器IP:9000 #MinIO服务所在地址
  bucketName: mall #存储桶名称
  accessKey: minio #访问的key
  secretKey: Aa123456 #访问的秘钥

2.5、存储路径分析

在这里插入图片描述

三、测试

3.1、上传资源

在这里插入图片描述

3.2、删除资源

在这里插入图片描述

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值