Minio文件系统安装与服务化

Minio简单介绍

最近的课程作业中,有个功能是做文件上传下载的,当然如果作业的话,使用MultipartFile进行简单的File IO,可以满足简单的需求,但看到Minio这么好看的界面,顿时想要去玩了。


Minio是一款跨平台的可「自建」轻量级对象存储服务,只需要一个命令,就能实现可以通过浏览器访问的简易网盘功能。支持本地储存和 AWS S3,最大存储对象 5TB。提供 API 与 SDK,可以和很多服务整合,甚至可以整合到 Android 与 iOS 应用中,使用 Apache License 2.0 协议发布。Github地址


首先它的控制界面是这个样子的:

主界面

个人感觉超级简洁有木有,通过该界面上传下载都是非常方便的,当然我们后台程序中,是通过java 的sdk来进行操作的。


安装篇:

简单安装

1
2
3
4
# wget https://dl.minio.io/server/minio/release/linux-amd64/minio
# chmod +x minio
# mv minio /usr/local/bin
# mkdir -p /tmp/minio

通过这个安装之后,在/usr/local/bin目录下面执行这个命令,就能看到输出信息,获得accessKey和secretKey

1
# minio server /tmp/minio   //后面的是数据目录


将Minio设置成服务

以上步骤中,如果Ctrl+C退出之后,这个Minio服务也就同时停止了,所以如果需要它在后台进行服务,需要将它添加到后台服务中。(默认你在root权限=-=,不加sudo)

1、首先需要添加minio用户,以及建一个Minio文件夹

1
2
3
4
5
# adduser minio-user

# mkdir /tmp/minio

# chown minio-user:minio-user /tmp/minio

2、建立一个配置文件,并更新你的Key值

1
2
3
4
5
# vim /etc/default/minio
MINIO_ACCESS_KEY=xxx
MINIO_SECRET_KEY=xxx
MINIO_VOLUMES="/tmp/minio/"
MINIO_OPTS="--address :9000"

3、新建一个minio.service 在 /etc/systemd/system

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# vim /etc/systemd/system/minio.service
[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local/

User=minio-user
Group=minio-user

PermissionsStartOnly=true

EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\""

ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

StandardOutput=journal
StandardError=inherit

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=0

# SIGTERM signal is used to stop Minio
KillSignal=SIGTERM

SendSIGKILL=no

SuccessExitStatus=0

[Install]
WantedBy=multi-user.target

5、正式启用和查看状态

1
2
3
4
# systemctl enable minio.service
# systemctl daemon-reload
# systemctl start minio
# systemctl status minio.service

通过这些步骤,就可以后台运行Minio服务了。


接下来要在SpringBoot中使用Minio的SDK进行API操作,写完大作业接着填坑吧。

资料参考:Installing Minio as a Service on CentOS 7.3+