MinIO 是一个非常轻量的基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
一、MinIO 服务部署
1.1 下载安装包
本文使用 CentOS 7,安装包地址(中国镜像):http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
1.2 启动服务
1 | chmod +x minio |
其中 /project/miniodata/ 是文件存储位置,默认端口是 9000,AccessKey 和 SecretKey 均为 minioadmin
也可以手动指定端口号:
1 | ./minio server --address :9001 /project/miniodata/ |
也可以手动修改 AccessKey 和 SecretKey:
1 | vi /etc/profile |
二、Java SDK 使用
2.1 新建项目添加配置
1 | minio: |
2.2 上传、下载、文件分享代码
1 | @RestController |
新建一个 Bucket 就是在文件路径新建一个目录,默认上传的文件都在该 Bucket 的根目录,如果要存储多级目录,可以指定在文件名中指定目录结构,如:img/avatar.jpg
注意校正 MinIO 服务器时间,否则可能会报错:
1 | Caused by: io.minio.errors.ErrorResponseException: The difference between the request time and the server's time is too large. |
完整代码:GitHub
参考:MinIO 中文文档