可视化的对象存储服务

MinIO简介

MinIO 是一款基于Go语言的高性能对象存储服务,它采用了Apache License v2.0开源协议,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。

安装

使用Docker安装MinIO服务非常简单,几个命令就可以搞定!
1.首先下载MinIO的Docker镜像;

docker pull minio/minio

2.下载完成后使用如下命令运行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"

在这里插入图片描述

3.运行成功后就可访问MinIO Console的管理界面了,输入账号密码minioadmin:minioadmin即可登录,访问地址:http://106.14.156.185:9090
在这里插入图片描述

MinIO Console使用

1.MinIO Console,不仅支持了存储桶、文件的管理,还增加了用户、权限、日志等管理功能
在这里插入图片描述
2.在存储文件之前,我们首先得创建一个存储桶;
在这里插入图片描述
3.创建成功后,再上传一个文件;
在这里插入图片描述
在这里插入图片描述
4.上传成功后如果你想从外部访问文件的话,需要把访问策略设置为公开,这里的策略只有公开和私有两种,感觉不太灵活;
在这里插入图片描述
在这里插入图片描述
5.之后把地址改为外网访问地址即可访问图片,默认只能下载不能直接查看(这个问题我们下面再解决),外网访问地址:http://106.14.156.185:9090/blog/1.jpg
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

客户端使用

其实对于对象存储来说,MinIO Console的功能还是不够用的,所以官方还提供了基于命令行的客户端MinIO Client(简称mc),下面我们来讲讲它的使用方法。

MinIO Client 常用命令

我们先来熟悉下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 Client 安装及配置

由于MinIO服务端中并没有自带客户端,所以我们需要安装并配置完客户端后才能使用,这里以Docker环境下的安装为例。
1.下载MinIO Client 的Docker镜像;

扫描二维码关注公众号,回复: 13305289 查看本文章
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>

4.对于我们的MinIO服务可以这样配置。

mc config host add minio http://106.14.156.185:9090 minioadmin minioadmin

MinIO Client 常用操作

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

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

在这里插入图片描述

2.创建一个名为test的存储桶;

mc mb minio/test

在这里插入图片描述
3.共享1.jpg文件的下载路径;

mc share download minio/blog/1.jpg

在这里插入图片描述

4.查找blog存储桶中的jpg文件;

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

在这里插入图片描述

5.设置test存储桶的访问权限为只读。

# 目前可以设置这四种权限:none, download, upload, public
mc policy set download minio/test/
# 查看存储桶当前权限
mc policy list minio/test/

在这里插入图片描述

兼容AWS S3

当我们对接第三方服务要用到对象存储时,这些服务往往都是支持AWS S3的。比如说一个直播的回放功能,需要对象存储来存储回放的视频,由于MinIO兼容AWS S3的大多数API,我们可以直接拿它当AWS S3来使用。
1.我们可以下载个AWS S3的客户端来试试,MinIO到底能不能支持S3的API,这里使用的是S3 Browser,下载地址:https://s3browser.com/
在这里插入图片描述
2.S3 Browser安装
双击s3browser-9-9-7.exe,选择I accept the agreement,点击Next按钮;
在这里插入图片描述
选择安装目录,点击Next按钮;
在这里插入图片描述
点击Next按钮;
在这里插入图片描述
点击Finish按钮;
在这里插入图片描述
3.安装好S3 Browser之后,添加一个Account,输入相关登录信息,注意选择Account类型为S3 Compatible Storage;
在这里插入图片描述
4.连接成功后,我们可以看见之前我们创建的存储桶和上传的文件;
在这里插入图片描述
5.S3 Browser这个工具功能还是很强大的,MinIO Console和它比起来实在太弱了;
在这里插入图片描述
6.上面有提到一个问题,图片文件无法直接查看,其实是因为访问图片文件时,MinIO返回的Content-Type为application/octet-stream导致的;
在这里插入图片描述

7.接下来我们可以通过S3 Browser来修改默认返回的响应头;
在这里插入图片描述
8.然后将.png开头的文件的响应头改为image/png就可以了。
在这里插入图片描述
在这里插入图片描述

9.需要注意的是之前上传的文件需要重新上传下才可以生效,此时访问链接就可以直接查看图片了;
在这里插入图片描述

10.如果你想修改存储桶的访问权限的话直接通过Permissions标签修改即可,是不是比MinIO Console灵活多了。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/muriyue6/article/details/119643542
今日推荐