MinIO安装以及使用

目录

1.Minio介绍

2.安装MinIO

3. MinIO客户端


1.Minio介绍

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从数KB到最大5TB都能很好的支持。开源并且用Go语言开发,有web操作界面,我们可以用它来搭建兼容S3协议的存储云服务。相比 hadoop hdfs 分布式存储服务轻量很多,且支持单节点部署。

SDK(API):

官方安装文档,MinIO提供了很多语言的SDK跟API支持:javascript,Java,python,Golang、.Net。

分部署部署:

1)  分布式MinIO里所有的节点需要有同样的access秘钥和secret秘钥,这样节点才能建立联接。需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量。

2)  分布式MinIOo使用的磁盘里必须是干净的,里面没有数据。

3)  分布式MinIO里的节点时间差不能超过3秒

4) 分布式部署至少需要4个节点,否则启动会报错

MinIO支持单机部署、多租户部署、分布式部署。支持原始文件存储已经纠删码模式存储。单机部署时,可使用minio的客户端工具进行备份。

Minio 为什么没有 POST 上传接口?

2.安装MinIO

MinIO的安装方式有很多,支持docker容器安装、二进制方式安装,这里我选择docker安装方式,docker环境默认已安装,docker可参考,本篇主要学习安装、以及上传图片。

2.1 拉取MinIO镜像

# docker pull minio/minio

2.2 查看镜像

# docker images

2.3 运行镜像MinIO

docker run -p 9090:9000 --name minio \
  -v /etc/localtime:/etc/localtime \
  -v /data/minio/data:/data \
  -v /data/minio/config:/root/.minio \
  -d minio/minio server /data

查看正在运行的容器:

# docker ps

查看MinIO容器日志 :

# docker logs 0d3eaca91ffc

监控MinioDocker容器:

# docker stats 0d3eaca91ffc 

2.4 浏览器访问

http://172.20.32.232:9090/      

1) 登陆:在输入控制打印的默认的AccessKey和SecretKey:

AccessKey: minioadmin             SecretKey: minioadmin

 

2) 创建桶:进入系统后,我们先要点击右下角的“+”按钮,创建一个文件桶(输入名称后,回车即可),在上传文件到这个文件桶中。Create bucket(创建文件桶)、Upload file(上传文件),这里我创建了一个桶test,上传了一张图片

3) 查看桶目录

进入服务器/data/minio/data目录,文件桶test相当于文件目录,这里没有使用纠删码的模式,所以直接就是源文件了。当我们线上运行的项目已经有源文件了,在使用minio的时候,可以直接指定该目录为minio的文件目录就行了。

4) 分享链接

上传的文件,在文件列表界面有一个分享按钮,点击分享将生成文件的访问URL地址,以指定链接的有效时间,有效时间最多7天,最小的单位是分钟。在有效时间过期后在访问图片时,会提示失效。

5) 存储桶访问策略 

要想获取一个永久的访问路径,需要修改存储桶的访问策略,点击存储桶右上角的编辑策略按钮来修改访问策略,有三种访问策略可以选择:只读、只写、可读可写,这里我们选择只读即可,但是需要注意的是,访问前缀需要设置为*.*,否则会无法访问;

设置完成后,只需要通过拷贝链接中的前一串路径即可永久访问该文件

3. MinIO客户端

MinIO Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。MinIO服务端中并没有自带客户端,所以我们需要安装配置完客户端后才能使用。

官方参考文档

常用mc的命令:

命令作用
ls列出文件和文件夹
mb创建一个存储桶或一个文件夹
cat显示文件和对象内容
pipe将一个STDIN重定向到一个对象或者文件或者STDOUT
share生成用于共享的URL
cp拷贝文件和对象
mirror给存储桶和文件夹做镜像
find基于参数查找文件
diff对两个文件夹或者存储桶比较差异
rm删除文件和对象
events管理对象通知
watch监听文件和对象的事件
policy管理访问策略
session为cp命令管理保存的会话
config管理mc配置文件
update检查软件更新
version输出版本信息

3.1下载MinIO Client 的Docker镜像

# docker pull minio/mc

3.2 运行镜像MinIO Client

如果想用mc操作其它S3兼容的服务,采用下面的方式来启动容器,然后使用mc config命令

# docker run -it --entrypoint=/bin/sh minio/mc

说明:   -it   打开STDIN,用于控制台交互

     --entrypoint="", 覆盖image的入口点

添加一个或多个S3兼容的服务,请参考下面说明。mc将所有的配置信息都存储在~/.mc/config.json文件中。

如果容器启动中,需要重新进入:

docker attach id                    进入某个容器(使用exit退出后容器也跟着停止运行)

docker exec -ti id  /bin/sh                启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)

# docker exec -it ec6e0a2023e5 /bin/sh

3.3 添加一个云存储服务

命令格式:mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> [--api API-SIGNATURE]

 别名ALIAS就是给你的云存储服务起了一个短点的外号

S3 endpoint,access key和secret key是你的云存储服务提供的

API签名是可选参数,默认情况下,它被设置为"S3v4"

# mc config host add minio http://172.20.32.232:9090 minioadmin minioadmin --api s3v4

3.4 常用操作

# mc ls minio               //查看存储桶

# mc ls minio/test       //查看存储桶test中存在的文件

3.5 创建存储桶(比如:存储桶dnps)

# mc mb minio/dnps                                       //创建一个名为dnps的存储桶

#mc share download minio/test/small.jpg       //共享test桶下small.jpg文件的下载路径

#mc find minio/test --name "*.jpg"                    //查找test存储桶中的png文件

# mc policy set download minio/dnps/             //设置权限:none, download, upload, public

# mc policy list minio/dnps/                              //查看存储桶当前权限

# mc cp minio/test/small.jpg   minio/dnps/        //拷贝文件和对象

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页