MnIO的安装及简单使用(Linux)

1.下载安装包

进入MinIO官网
在这里插入图片描述
点击 linux-amd64(上图中圈起来的地方)
点击miio(下图中圈起来的地方),即开始下载minio的运行程序
在这里插入图片描述

2.配置

将上面步骤下载好的文件复制到Linux机器中
在这里插入图片描述
赋予执行权限

chmod +x minio

可以看到minio变绿了
在这里插入图片描述
创建minio数据存放路径(本例使用:/software/minio/data

 mkdir -p /software/minio/data

赋予每个人整个minio文件夹(/software/minio/data)读、写的权限

 chmod 666 /software/minio/

配置用于登录minio控制台的用户和密码

vim /etc/profile

文件最后一行加上

export MINIO_ROOT_USER=登录用户名
export MINIO_ROOT_PASSWORD=登录密码

示例如下图所示
在这里插入图片描述

wq保存退出

使配置生效

source /etc/profile

3.编写启动脚本

vim start
minio_pid_count=`ps -ef|grep "minio server"|wc -l`

#如果有minio进程则杀掉
if (($minio_pid_count > 1));
then ./stop
fi


echo "minio is starting..."

console_port=9099 #控制台端口
server_port=9098  #服务端口
log_path=/software/minio/minio.log #日志文件路径(自定义)
minio_program_path=/software/minio/minio #minio应用程序所在路径
data_dir=/software/minio/data/ #数据存放路径(自定义)

#使用一些参数并 以后台运行的方式启动MinIO,同时写入日志文件
nohup $minio_program_path server $data_dir --console-address ":$console_port" --address ":$server_port" >> $log_path 2>&1 &

echo "console-port:$console_port"
echo "api-port:$server_port"
echo "minio-log-path:$log_path"
echo "MINIO_ROOT_USER:${MINIO_ROOT_USER}"
echo "MINIO_ROOT_PASSWORD:${MINIO_ROOT_PASSWORD}"
echo "certs_dir:${certs_dir}"
echo "minio is started successfully!"

wq保存退出
赋予执行权限

chmod +x start

3.编写停止脚本

vim stop
pid=`ps -ef | grep "minio server" | grep -v grep | awk '{print $2}'`

kill -9 $pid

echo "minio is stopped"

wq保存退出
赋予执行权限

chmod +x stop

此时minio目录如下

4.启动

/software/minio/start

在这里插入图片描述
启动成功,可见控制台端口是9099
防火墙开放9099端口

firewall-cmd --zone=public --add-port=9099/tcp --permanent=

重启防火墙

firewall-cmd --reload

通过 ip:端口访问
在这里插入图片描述

输入在 /etc/profile中配置的用户名和密码登录即可
在这里插入图片描述

5.Java简单使用MinIO

5.1创建Access Key

进入minio控制台,点击Access Keys
在这里插入图片描述

然后点击Create access key
在这里插入图片描述

点击上图中的create,将 access key 和 secret key保存起来(因为它只显示一次,且后面要用到)
在这里插入图片描述

点击×关闭后,可以看到创建成功了
在这里插入图片描述

5.2编写简单代码测试上传功能

导入依赖或对应依赖包,我这里是maven项目,直接导入依赖

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

注意:我这里使用9098作为minio服务端口,也需要开放

准备一个文件,内容如下
在这里插入图片描述

编写测试类

import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class Test {

  public static void main(String[] args) {
    try {
      /**
       *  模拟上传文件
       **/
      String filePath = "E:\\123.txt"; //要上传的文件路径
      String serverAddress = "http://192.168.50.75:9098"; //minio服务端地址 注意端口与控制台端口不一样
      String accessKey = "你在minio控制台创建的accessKey";
      String secretKey = "accessKey对应的secretKey";
      String bucketName = "bk1";

      //1.创建minio客户端
      MinioClient minioClient = MinioClient.builder()
          .endpoint(serverAddress)
          .credentials(accessKey, secretKey)
          .build();
      //2.判断存储桶是否存在,不存在则创建
      boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
      if (!exists){
        minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
      }

      //3.创建file对象
      File file = new File(filePath);

      //4.file转输入流并上传
      InputStream in = null;
      try {
        in = new FileInputStream(file);
        minioClient.putObject(PutObjectArgs.builder()
            .bucket(bucketName)
            .object("文件名111.txt")  //文件名也写死了 所以同名文件会覆盖
            .stream(in, in.available(), -1)
            .contentType("txt")  //文件类型,这里写死了,实际上需要根据文件动态获取
            .build()
        );
      } catch (Exception e) {
        e.printStackTrace();
      } finally {
        if (in != null) {
          try {
            in.close();
          } catch (IOException e) {
            e.printStackTrace();
          }
        }
      }
    }catch (Exception e){
      e.printStackTrace();
    }
  }
}

运行
在这里插入图片描述

上传成功

网址访问文件的方法
将bucket开放为public
在这里插入图片描述
通过 ip:端口/存储桶路径/文件名称
例:http://192.168.50.75:9098/bk1/tt/屏幕截图 2023-04-13 162619.png
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值