Github 标星 28K+,这款可视化的对象存储服务真香
摘要
--
在我们平时做项目的时候,文件存储是个很常见的需求。这时候我们就会用到对象存储服务,平时我们可能会选择 OSS、AWS S3 这类第三方服务。今天带大家搭建一款自己的对象存储服务,带可视化管理,用起来也挺简单!
MinIO 简介
MinIO 是一款基于 Go 语言的高性能对象存储服务,在 Github 上已有 28K+Star。它采用了 Apache License v2.0 开源协议,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。
安装
--
使用 Docker 安装 MinIO 服务非常简单,几个命令就可以搞定!
首先下载 MinIO 的 Docker 镜像;
docker pull minio/minio
复制代码
下载完成后使用如下命令运行 MinIO 服务,注意使用
--console-address
指定 MinIO Console 的运行端口(否则会随机端口运行):
docker run -p 9090:9000 -p 9001:9001 --name minio \
-v /mydata/minio/data:/data \
-e MINIO_ROOT_USER=minioadmin \
-e MINIO_ROOT_PASSWORD=minioadmin \
-d minio/minio server /data --console-address ":9001"
复制代码
运行成功后就可访问 MinIO Console 的管理界面了,输入账号密码
minioadmin:minioadmin
即可登录,访问地址:[http://192.168.7.142:9090](()
MinIO Console 使用
MinIO Console 是 MinIO 自带的可视化管理工具,比起上一代的可视化工具功能还是强大了不少的,下面我们来体验下这个工具。
先来看下上一代的 MinIO Browser,基本只支持存储桶及文件的管理功能;
再来看下 MinIO Console,不仅支持了存储桶、文件的管理,还增加了用户、权限、日志等管理功能,强了不少;
在存储文件之前,我们首先得创建一个存储桶;
创建成功后,再上传一个文件;
上传成功后如果你想从外部访问文件的话,需要把访问策略设置为公开,这里的策略只有公开和私有两种,感觉不太灵活;
之后把地址改为外网访问地址即可访问图片,默认只能下载不能直接查看(这个问题我们下面再解决),外网访问地址:[http://192.168.7.142:9090/blog/avatar.png](()
客户端使用
其实对于对象存储来说,MinIO Console 的功能还是不够用的,所以官方还提供了基于命令行的客户端 MinIO Client(简称 mc),下面我们来讲讲它的使用方法。
常用命令
我们先来熟悉下 mc 的命令,这些命令和 Linux 中的命令有很多相似之处。
| 命令 | 作用 |
| --- | --- |
| ls | 列出文件和文件夹 |
| mb | 创建一个存储桶或一个文件夹 |
| rb | 删除一个存储桶或一个文件夹 |
| cat | 显示文件和对象内容 |
| pipe | 将一个 STDIN 重定向到一个对象或者文件或者 STDOUT |
| share | 生成用于共享的 URL |
| cp | 拷贝文件和对象 |
| mirror | 给存储桶和文件夹做镜像 |
| find | 基于参数查找文件 |
| diff | 对两个文件夹或者存储桶比较差异 |
| rm | 删除文件和对象 |
| events | 管理对象通知 |
| watch | 监听文件和对象的事件 |
| policy | 管理访问策略 |
| session | 为 cp 命令管理保存的会话 |
| config | 管理 mc 配置文件 |
| update | 检查软件更新 |
| version | 输出版本信息 |
安装及配置
由于 MinIO 服务端中并没有自带客户端,所以我们需要安装并配置完客户端后才能使用,这里以 Docker 环境下的安装为例。
下载 MinIO Client 的 Docker 镜像;
docker pull minio/mc
复制代码
在 Docker 容器中运行 mc;
docker run -it --entrypoint=/bin/sh minio/mc
复制代码
运行完成后我们需要进行配置,将我们自己的 MinIO 服务配置到客户端上去,配置的格式如下;
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY>
复制代码
对于我们的 MinIO 服务可以这样配置。
mc config host a 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 dd minio http://192.168.7.142:9090 minioadmin minioadmin
复制代码
常用操作
查看存储桶和查看存储桶中存在的文件;
查看存储桶
mc ls minio
评论