开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情
本文主要介绍通过 docker 安装 MinIO 私有图库,以及使用 Java SDK 搭建后端 api,方便第三方调用
前期准备工作
-
一台电脑/服务器
-
已安装
docker# 使用 docker -v 检查 > docker -v Docker version 20.10.21, build baeda1f
安装 MinIO
拉取 docker 镜像
> docker pull quay.io/minio/minio
Using default tag: latest
latest: Pulling from minio/minio
a6577091999b: Already exists
19d73440ce8d: Pull complete
143ca56f71a1: Pull complete
bfce29e50337: Pull complete
57b0be0ba318: Pull complete
4a15e8c1e565: Pull complete
Digest: sha256:afeb8e9880ef7aa2952f592925eb8942378e0e7b3a5af8a20dee4d5558a9bea9
Status: Downloaded newer image for quay.io/minio/minio:latest
quay.io/minio/minio:latest
# 查看 docker images
> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/minio/minio latest 2bca66a480f6 3 hours ago 311MB
创建挂载 data 目录
# 创建 ~/minio/data 文件夹
mkdir -p ~/minio/data
创建容器,同时后台启动 minio
# 40000:9000 代表服务器本地的端口是 40000,映射到 docker 内部的9000。40000 是文件 api 端口
# 40001:9090 代表服务器本地的端口是 40001,映射到 docker 内部的9090。40001 是控制台端口
# MINIO_ROOT_USER 代表第一个管理员的账号
# MINIO_ROOT_PASSWORD 代表第一个管理员的密码,这两个都可以按照自己需求设置
> docker run -d \
-p 40000:9000 \
-p 40001:9090 \
--name minio \
-v ~/minio/data:/data \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=Admin123" \
quay.io/minio/minio server /data --console-address ":9090"
# dc36a2643235f7f86472140cb45cae396a8af6922f9e1e865721952fa76cb859
创建成功,查看
# 使用 docker ps 查看正在运行的容器
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dc36a2643235 quay.io/minio/minio "/usr/bin/docker-ent…" About a minute ago Up About a minute 0.0.0.0:40000->9000/tcp, :::40000->9000/tcp, 0.0.0.0:40001->9090/tcp, :::40001->9090/tcp minio
打开网址,创建 buckets
打开网址: http://localhost:40001
如果在服务器上,则将 localhost 修改为 ip,同时别忘记将 40000 和 40001 端口设置通过防火墙。
输入账号密码
admin / Admin123
登录成功,创建 buckets
点击 create Bucket + 添加 Buckets,然后就可以本地上传图片了
创建 Access Keys
为了能够使用 sdk 操作图片,可以创建 Access Keys。创建完成后,只显示一次,需要记录下来,以方便之后使用。
使用 Java SDK 搭建后端 api
代码地址
Gitee代码: https://gitee.com/yuestone-info/minio_backend
# 修改 src/main/resources/application.xml
# 将上方记录的 Access Keys 填充到此处即可
# 文件系统
minio:
endpoint: http://ip:port
access-key: 控制台获取
secret-key: 控制台获取
bucket-name: 名称
...
jar 包
# 使用 mvn clean install 打包成 jar
mvn clean install
# 使用 `java -jar minio-0.0.1-SNAPSHOT.jar` 运行
java -jar minio-0.0.1-SNAPSHOT.jar