Minio安装以及使用
Minio介绍
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从数KB到最大5TB都能很好的支持。开源并且用Go语言开发,有web操作界面,我们可以用它来搭建兼容S3协议的存储云服务。相比 hadoop hdfs 分布式存储服务轻量很多,且支持单节点部署。
SDK(API):
官方安装文档,MinIO提供了很多语言的SDK跟API支持:javascript,Java,python,Golang、.Net。
分部署部署:
- 
分布式MinIO里所有的节点需要有同样的access秘钥和secret秘钥,这样节点才能建立联接。需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量。 
- 
分布式MinIOo使用的磁盘里必须是干净的,里面没有数据。 
- 
分布式MinIO里的节点时间差不能超过3秒 
- 
分布式部署至少需要4个节点,否则启动会报错 
MinIO支持单机部署、多租户部署、分布式部署。支持原始文件存储已经纠删码模式存储。单机部署时,可使用minio的客户端工具进行备份。
安装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 浏览器访问
- 登陆:在输入控制打印的默认的AccessKey和SecretKey:
AccessKey: minioadmin SecretKey: minioadmin

- 
创建桶:进入系统后,我们先要点击右下角的“+”按钮,创建一个文件桶(输入名称后,回车即可),在上传文件到这个文件桶中。Create bucket(创建文件桶)、Upload file(上传文件),这里我创建了一个桶test,上传了一张图片 
  
  
- 
查看桶目录 
进入服务器/data/minio/data目录,文件桶test相当于文件目录,这里没有使用纠删码的模式,所以直接就是源文件了。当我们线上运行的项目已经有源文件了,在使用minio的时候,可以直接指定该目录为minio的文件目录就行了。

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

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

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

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就是给你的云存储服务起了一个短点的外号
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/        //拷贝文件和对象


 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号