MinIO 是一款基于Go语言的高性能对象存储服务,在Github上已有19K+Star。它采用了Apache License v2.0开源协议,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 本文将使用 MinIO 来自建一个对象存储服务用于存储图片。
MinIO的安装方式有很多,这里我们使用它在Docker环境下的安装方式。
docker pull minio/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

通过使用MinIO的网页端即可完成文件的上传下载功能,下面我们以图片上传下载为例来演示下该功能。





虽然MinIO的网页端管理已经很方便了,但是官网还是给我们提供了基于命令行的客户端MinIO Client(简称mc),下面我们来讲讲它的使用方法。
下面我们先来熟悉下mc的命令,这些命令和Linux中的命令有很多相似之处。
| 命令 | 作用 | 
|---|---|
| ls | 列出文件和文件夹 | 
| mb | 创建一个存储桶或一个文件夹 | 
| cat | 显示文件和对象内容 | 
| pipe | 将一个STDIN重定向到一个对象或者文件或者STDOUT | 
| share | 生成用于共享的URL | 
| cp | 拷贝文件和对象 | 
| mirror | 给存储桶和文件夹做镜像 | 
| find | 基于参数查找文件 | 
| diff | 对两个文件夹或者存储桶比较差异 | 
| rm | 删除文件和对象 | 
| events | 管理对象通知 | 
| watch | 监听文件和对象的事件 | 
| policy | 管理访问策略 | 
| session | 为cp命令管理保存的会话 | 
| config | 管理mc配置文件 | 
| update | 检查软件更新 | 
| version | 输出版本信息 | 
由于MinIO服务端中并没有自带客户端,所以我们需要安装配置完客户端后才能使用,这里以Docker环境下的安装为例。
docker pull minio/mc
docker run -it --entrypoint=/bin/sh minio/mc
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> <API-SIGNATURE>
mc config host add minio http://localhost:9000 minioadmin minioadmin S3v4
# 查看存储桶
mc ls minio
# 查看存储桶中存在的文件
mc ls minio/blog

test的存储桶:mc mb minio/test
avatar.png文件的下载路径:mc share download minio/blog/avatar.png
blog存储桶中的png文件:mc find minio/blog --name "*.png"
test存储桶的访问权限为只读:# 目前可以设置这四种权限:none, download, upload, public
mc policy set download minio/test/
# 查看存储桶当前权限
mc policy list minio/test/
详细了解MinIO可以参考官方文档:https://docs.min.io/cn/minio-quickstart-guide.html
原文:https://www.cnblogs.com/burningmyself/p/12172760.html