可视化的对象存储服务

Posted mry6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可视化的对象存储服务相关的知识,希望对你有一定的参考价值。

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镜像;

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灵活多了。

以上是关于可视化的对象存储服务的主要内容,如果未能解决你的问题,请参考以下文章

unity动画一个片段播放完怎么让它不会到初始状态

json 可视代码工作室Angular with Firebase片段

如何将本地存储中的 JSON 对象添加到 Android Studio 上的片段列表

如何将代码片段存储在 mongodb 中?

'numpy.ndarray':对象不可调用错误

VSCode自定义代码片段12——JavaScript的Promise对象