宝塔面板搭建MinIO 和MinIO客户端- 快速自建对象存储服务!

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。这篇文章就来说说如何利用宝塔面板来搭建MinIO。

具体的安装和部署


1、前言

GitHub:https://github.com/minio/minio

官网:https://min.io/

文档:https://docs.min.io/cn/

2、准备

  • 宝塔面板最新版本
  • docker管理器安装好
  • 解析好的域名一个
  • nginx安装好
  • 新建网站一个

3、安装

采用的docker部署方式,部署代码如下:

  • 下载MinIO的Docker镜像:
docker pull minio/minio
  • 在Docker容器中运行MinIO,这里我们将MiniIO的数据和配置文件夹挂在到宿主机也就是服务器上:
docker run -p 9091:9000 --name minio \
  -v /mydata/minio/data:/data \
  -v /mydata/minio/config:/root/.minio \
  -d minio/minio server /data

4、登录

运行成功后,访问形式:http://服务器ip:9091默认Access Key和Secret都是minioadmin

登录界面如图:

5、上传文件以及使用

通过使用MinIO的网页端即可完成文件的上传下载功能。

1)新建存储桶

在存储文件之前,我们需要新建一个存储桶,点击右下角的“+”号图标,具体如图:

2)存储桶创建完成后,通过上传按钮可以上传文件

3)图片上传完成后,我们可以通过拷贝链接按钮来获取图片访问路径,但是这只是个临时的访问路径

4)要想获取一个永久的访问路径,我们可以点击存储桶右上角的编辑策略按钮来修改访问策略

5)这里有三种访问策略可以选择,一种只读、一种只写、一种可读可写,这里我们选择只读即可,但是需要注意的是,访问前缀需要设置为*.*,否则会无法访问

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

7)访问效果

MinIO客户端的使用

虽然MinIO的网页端管理已经很方便了,但是官网还是给我们提供了基于命令行的客户端MinIO Client(简称mc)。

6、常用命令

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

7、配置客户端

客户端的配置略微麻烦一点。这里以Docker环境下配置客户端为列。

1)下载MinIO Client 的Docker镜像

docker pull minio/mc

2)在Docker容器中运行mc

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

3)运行完成后我们需要进行配置,将我们自己的MinIO服务配置到客户端上去,配置的格式如下

mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> <API-SIGNATURE>

4)具体的配置实例

mc config host add minio http://echo.dayu.tk minioadmin minioadmin S3v4

8、常用操作

简单列举几个常用的操作。以上的实列配置完成之后,就可以在docker环境中执行以下命令。

1)查看存储桶和查看存储桶中存在的文件

# 查看存储桶
mc ls minio
# 查看存储桶中存在的文件
mc ls minio/www.vps100.net/

截图:

2)创建一个名为daniao的存储桶

mc mb minio/daniao

截图:

3)设置权限

创建之后,需要设置权限,代码如下:

mc policy set download minio/daniao/
mc policy list minio/daniao/

截图:

4)设置共享

命令如下:

mc share download minio/daniao/dn.jpg

截图:

5)查找daniao存储桶中的jpg文件

命令:

mc find minio/daniao/ --name "*.jpg"

你要查找别的文件只要修改后缀即可。运行结果如图:

9、最后

这是一个在github很受欢迎的项目,实际体验来看,网页端已经足够我们使用了,但是客户端却扩展了我们使用的范围。比如说,我们可以添加Google云存储、Amazon S3云存储等。

忘了说如何配置域名了,具体步骤是:新建网站→设置反向daili,看图:

参考资料:

https://docs.min.io/cn/minio-quickstart-guide.html