Minio - AWS S3 存储开源实现

本文参考 Minio Quickstart GuideMinio Client Quickstart Guide

一、简介

Minio 是一个基于 golang 语言开发的 AWS S3 存储协议的开源实现,并附带 web ui 界面,可以通过 Minio 搭建私人的兼容 AWS S3 协议的存储服务器

二、Minio 服务器搭建

Minio 基于 golang 开发,所以编译后只有一个可执行文件,启动一个 Minio 服务器极其简单,只需要使用 server 参数,并附带一个或多个存储目录即可

1
2
3
4
5
6
7
8
# 下载 Minio
wget https://dl.minio.io/server/minio/release/linux-amd64/minio
# 赋予可执行权限
chmod +x minio
# 创建一个目录用于存放 minio 文件
mkdir -p /data/aws_s3
# 以后台方式启动一个 minio 服务器
nohup ./minio server /data/aws_s3 &

minio 默认监听所有网卡的 9000 端口,此时直接访问 http://ip:9000 即可查看 web ui 界面,如下所示

hexo_minio_homepage

同时在启动 minio 后默认会输出当前 minio 服务器的相关登录参数,如 access_key 等,nohup 启动则默认重定向到了 nohup.out 文件中,如下所示

hexo_minio_token

三、mc 客户端操作

minio 服务器搭建好以后,就可以使用 mc 客户端进行上传下载操作

1
2
3
4
# 首先下载 mc 客户端
wget https://dl.minio.io/client/mc/release/linux-amd64/mc
# 增加可执行权限
chmod +x mc

mc 客户端通过 config host add 指令增加 minio 服务器,其实质操作是~/.mc/config.json 文件中加入新的 json 串,以下为增加一个 minio 服务器示例,相关参数可从服务端输出日志中找到

1
mc config host add aws_s3 http://192.168.1.100:9000 TP6T2AXYYVLI8D2CEHYQ /+4+KVa7p3suABEaJ/E1gv4KQra7GdwsxWNs0Nr7

默认 minio 服务端启动后目录为空,需要手动创建 bucket,然后才能向具体的 bucket 中存放文件

1
2
# 在 aws_s3 的服务器上创建一个叫 test 的 bucket
mc mb aws_s3/test

返回创建成功后可登陆 ui 查看

hexo_minio_token

创建好 bucket 后就可以向里面增加或删除文件

1
2
3
4
5
6
# 复制文件到 minio 服务器
mc cp test.tar.gz aws_s3/test
# 列出 minio 服务器上的文件
mc ls aws_s3/test
# 删除 minio 服务器上的文件
mc rm aws_s3/test/test.tar.gz

四、其他相关

minio 提供了生成文件分享连接、创建上传到指定 bucket 文件的连接等高级功能,并且官方提供 docker 镜像,同时由于其 server 创建时只是指定了一个或多个目录作为存储位置,便可以很方便的搭配 GlusterFS 等分布式文件系统,更多玩法需要自己实验


Minio - AWS S3 存储开源实现
https://mritd.com/2016/09/17/minio-aws-s3-storage-open-source-implementation/
作者
Kovacs
发布于
2016年9月17日
许可协议