minio安装部署及使用的详细过程

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

一、服务器安装minio

1.进行下载

下载地址:

GNU/Linux

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

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

mkdir -p /home/minio/data

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

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.访问

地址:http://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: http://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安装部署使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 轻量级对象存储服务minio安装及浏览器使用教程

    目录 简介 安装 1.创建需要挂载的文件夹 2.拉取镜像 3.创建容器 4.开放端口 使用 1.浏览器访问 2.新增bucket 3.设置bucket 4.上传浏览图片 简介 Minio 是一个基于Apache License v2.0开源协议的对象存储服务,非常适合于存储大容量非结构化的数据,例如图片.视频.日志文件.备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等:Minio是一个非常轻量的服务,可以很简单的和其他应用的结合. 官网:MinIO | High

  • Docker安装MinIO详细步骤介绍

    目录 一.查看docker环境是否正常 二.下载minIO的镜像 三.创建minIO容器 四.访问地址 五.安装遇到问题 1.问题一 2.问题二 3.问题三 一.查看docker环境是否正常 在命令行使用docker search minIO: 如果能查出来证明docker安装的没问题,然后开始下一步 二.下载minIO的镜像 docker pull minio/minio 三.创建minIO容器 查看所有镜像 docker images 创建目录:一个用来存放配置,一个用来存储上传文件的目录.

  • minio安装部署及使用的详细过程

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

  • 使用Gitee自动化部署python脚本的详细过程

    一.前期准备 1.1 安装环境 1.安装python3 2.打开命令行安装selenium pip install selenium 二.python代码 2.1 源码 #!/usr/bin/python # -*- coding: utf-8 -*- import time from selenium import webdriver from selenium.webdriver.common.alert import Alert # 模拟浏览器打开到gitee登录界面 driver = w

  • centos8安装nginx1.9.1的详细过程

    1.17.9 更香,真的 nginx下载地址:https://nginx.org/download/ 1.下载nginx wget https://nginx.org/download/nginx-1.9.9.tar.gz 2.解压nginx tar -zxvf nginx-1.9.9.tar.gz 3.安装依赖包 yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel 4.配置nginx

  • Docker安装Presto连接Hive的详细过程

    1.简介 Presto 是一个开源分布式 SQL 查询引擎,用于针对从千兆字节到 PB 级的各种规模的数据源运行交互式分析查询.Presto 允许查询数据所在的位置,包括 Hive.Cassandra.关系数据库甚至专有数据存储.单个 Presto 查询可以组合来自多个来源的数据,从而允许对整个组织进行分析. 2.下载安装 1)下载镜像 docker pull starburstdata/presto 2)下载客户端jar 因为pull下来的镜像是server,是没有presto-cli命令的,

  • Ubuntu 20.04 上安装和使用 Docker的详细过程(安装包)

    目录 一.解压文件 二.拷贝解压后的文件到/usr/bin/下面 三.加入系统文件 四.启动Docker 五.Docker配置文件 六.重启Docker 七.检查Docker是否安装成功 八.总结 安装前将所有的软件包上传到系统的/opt路径,所有的操作都在/opt目录下 一.解压文件 tar -xzvf docker-19.03.0.tgz 二.拷贝解压后的文件到/usr/bin/下面 cp docker/* /usr/bin/ 三.加入系统文件 cat >/etc/systemd/syste

  • FastAPI 部署在Docker的详细过程

    Docker 学习 https://www.cnblogs.com/poloyy/p/15257059.html 项目结构 . ├── app │ ├── __init__.py │ └── main.py ├── Dockerfile └── requirements.txt FastAPI 应用程序 main.py 代码 from typing import Optional from fastapi import FastAPI app = FastAPI() @app.get("/&qu

  • CentOS 7.x安装部署Memcached服务器的详细方法

    操作系统:CentOS 7.x 64位 实现目的:安装部署Memcached服务器 一.防火墙设置 CentOS 7.x默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 2.安装iptables防火墙 yum install iptables-servi

  • Ubuntu16.04安装部署solr7的图文详细教程

    本文为大家分享了Ubuntu16.04安装部署solr7的具体方法,供大家参考,具体内容如下 VMware12.0+Ubuntu16.04+jdk1.8.0_171+Tomcat8.0.53+solr7.4.0 首先看看安装成功的界面,纪念一下,哈哈哈-- 在安装部署solr之前,先安装好jdk1.8和Tomcat8.0的环境,然后对下载好的solr进行解压: 解压后的文件夹有以下内容: 然后我们进入到/server/solr-webapp目录,里面有一个webapp,将这个webapp复制到/

  • 10分钟在服务器部署好Jenkins的详细过程

    目录 Linux安装Jenkins 1.下载安装 2.修改端口配置 3.启动 4.解决首页加载过慢问题 5.安装插件 6.设置管理员用户 7.一切准备就绪 8.新建任务,下回再续 总结 Linux安装Jenkins 哈喽,大家好,我是一条. 这是 DevOps 相关的第一篇文章,准确是第二篇,之前有一篇<Docker从入门到干事>. 本文主要是 Jenkins 的安装部署,那前提我们应该装好 Git Maven JDK.这些准备工作就简单过一下. Git Maven 非必需 Git 安装很简单

  • idea整合docker快速部署springboot应用的详细过程

    目录 一.前言 二.环境及工具 三.安装docker以及配置远程连接 四.idea连接远程docker 一.前言 容器化一词相信大家已经不陌生了,听到它我们可能会想到docker.k8s.jenkins.rancher等等.那么今天我来说一下idea如何使用docker快速部署springboot应用. 二.环境及工具 windows10(开发) centos 7.6 (部署) idea docker xshell 三.安装docker以及配置远程连接 安装docker步骤网上有很多,在这里还是

随机推荐