MinIO 快速入门
MinIO
是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO
是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS
, Redis
或者 MySQL
。
安装 MinIO
我们直接使用 Docker
来安装 MinIO
,这里使用的是稳定版:
1 | docker run -d -p 9000:9000 --name minio-dev -e "MINIO_ACCESS_KEY=admin" -e "MINIO_SECRET_KEY=admin" -v /apps/minio/data:/data -v /apps/minio/conf:/root/.minio minio/minio server /data |
安装 MinIO Client
MinIO Client (mc) 为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。
1 | ls 列出文件和文件夹。 |
首先需下载 MinIO Client
,这里同样使用Docker
来进行操作:
1 | docker pull minio/mc |
添加云存储服务
1 | mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> <API-SIGNATURE> |
别名就是给你的云存储服务起了一个短点的外号。S3 endpoint,access key和secret key是你的云存储服务提供的。API签名是可选参数,默认情况下,它被设置为”S3v4”。
示例-MinIO云存储
1 | mc config host add minio http://127.0.0.1:9000 admin admin S3v4 |
首先我们创建一个 bucket
1 | mc mb minio/public # 创建桶 |
然后将其桶策略设置为开放管理,以便于我们通过url 直接访问资源:
1 | mc policy set public minio/public |
测试
我们可以使用浏览器访问 http://127.0.0.1:9000 进行登陆操作,进入 public
目录下上传一张图片 test.jpg
,访问 http://127.0.0.1:9000/public/test.jpg ,图片能正常显示。
实战
下面将介绍 MinIO Java Client API ,首先我们引入 Maven 依赖
1 | <dependency> |
然后创建一个 FileController
1 | @RestController |
然后使用 PostMan 进行测试