Minio 安装与使用
作者:互联网
1. minio 简介
minio 是一个基于 Apache License V2.0 开源协议的对象存储服务。
2. 基础概念
- Object:存储到 minio 的基本对象,如文件、字节流...。
- Bucket:用来存储 Object 的逻辑空间。每个 Bucket 之间的数据是相互隔离的。
- Drive:部署 minio 时设置的磁盘,minio 中所有的对象数据都会存储到 Drive。
- Set:一组 Drive 的集合,minio 会自动根据 Drive 数量,将若干个 Drive 划分为多个 Set
For example: {1...64} is divided into 4 sets each of size 16)
3. minio server 二进制安装使用
3.1 下载
wget https://dl.min.io/server/minio/release/linux-amd64/minio
或者
wget http://49.232.8.65/minio/minio
3.2 创建安装目录并启动
mkdir -p /home/minio/data
chmod +x minio
cp minio /home/minio/data
export MINIO_ACCESS_KEY=minioadmin #创建账号
export MINIO_SECRET_KEY=minioadmin #创建密码
./minio server /home/minio/data #启动
后台启动,并打印日志
# 默认端口 9000
nohup ./minio server /home/minio/data > /home/minio/data/minio.log &
# 自定义端口方式:自定义启动端口号以及控制台端口号,不设置则控制台会自动配置其他端口号,非常不方便
nohup ./minio server --address :9000 --console-address :9001 /home/minio/data > /home/minio/data/minio.log &
[root@c7-1 ~]#ll /home/minio/data/minio
-rwxr-xr-x 1 root root 96595968 7月 25 11:02 /home/minio/data/minio
[root@c7-1 ~]#nohup /home/minio/data/minio server /home/minio/data > /home/minio/data/minio.log &
[1] 64808
[root@c7-1 ~]#nohup: 忽略输入重定向错误到标准输出端
[root@c7-1 ~]#ps -ef | grep minio
root 64808 64123 4 11:03 pts/0 00:00:00 /home/minio/data/minio server /home/minio/data
root 64830 64123 0 11:04 pts/0 00:00:00 grep --color=auto minio
3.3 进行访问,并设置 bucket
输入账号密码:minioadmin/minioadmin
创建桶:名字自取,创建完成后服务器 /home/minio/data 下也会创建这个文件目录
3.4 上传文件
3.5 设置规则
必须将规则设置成 readwrite,否则只能存或者只能读。前缀需要设置为 *.*
,否则会无法访问,设置完成后,我们只需要通过拷贝链接中的前一串路径即可永久访问该文件。
3.6 查看 bucket 目录
进入服务器 /home/minio/data 目录,文件桶 test 相当于文件目录,这里没有使用纠删码的模式,所以直接就是源文件了。当我们线上运行的项目已经有源文件了,在使用 minio 的时候,可以直接指定该目录为 minio 的文件目录就行了。
[root@c7-1 ~]#cd /home/minio/data/
[root@c7-1 /home/minio/data]#ls
minio minio.log test
[root@c7-1 /home/minio/data]#cd test/
[root@c7-1 /home/minio/data/test]#ls
8aa6e5ded048b04f39cb9b56d3682397.jpg
3.7 分享链接
点击分享将生成文件的访问 URL 地址,以指定链接的有效时间,有效时间最多 7 天,最小的单位是分钟。在有效时间过期后在访问图片时,会提示失效。
# 可以将加密字符串去掉下载
[root@c7-1 ~]#wget http://192.168.10.20:9000/test/8aa6e5ded048b04f39cb9b56d3682397.jpg
--2022-07-25 13:25:44-- http://192.168.10.20:9000/test/8aa6e5ded048b04f39cb9b56d3682397.jpg
正在连接 192.168.10.20:9000... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:135546 (132K) [image/jpeg]
正在保存至: “8aa6e5ded048b04f39cb9b56d3682397.jpg”
100%[========================================================================================================================================================================>] 135,546 --.-K/s 用时 0.001s
2022-07-25 13:25:44 (114 MB/s) - 已保存 “8aa6e5ded048b04f39cb9b56d3682397.jpg” [135546/135546])
[root@c7-1 ~]#ls
8aa6e5ded048b04f39cb9b56d3682397.jpg
4. docker 安装 minio server
4.1 拉取镜像
docker pull minio/minio
docker images | grep minio
4.2 运行镜像
docker run --name minio -p 9000:9000 -p 9001:9001 \
-v /etc/localtime:/etc/localtime \
-v /data/minio/data:/data \
-v /data/minio/config:/root/.minio \
-d minio/minio server /data \
--console-address ":9001" --address ":9000"
指定 api 端口和 console 端口。console 端口 9001 是给后台页面使用的,api 端口 9000 则是我们需要集成到后台项目中用到的,比如集成到 springboot 中,配置里面用到的端口就是 9000。
指定账号密码
docker run --name minio -p 9000:9000 -p 9001:9001 \
-e "MINIO_ROOT_USER=minioadmin" \
-e "MINIO_ROOT_PASSWORD=minioadmin" \
-v /etc/localtime:/etc/localtime \
-v /data/minio/data:/data \
-v /data/minio/config:/root/.minio \
-d minio/minio server /data \
--console-address ":9001" --address ":9000"
查看日志
docker ps -a | grep minio
docker logs -f minio
# ----------------查看 console 和 API -------------------
[root@c7-1 ~]#docker logs -f minio
WARNING: Detected Linux kernel version older than 4.0.0 release, there are some known potential performance problems with this kernel version. MinIO recommends a minimum of 4.x.x linux kernel version for best performance
MinIO Object Storage Server
Copyright: 2015-2022 MinIO, Inc.
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Version: RELEASE.2022-07-24T17-09-31Z (go1.18.4 linux/amd64)
Status: 1 Online, 0 Offline.
API: http://172.17.0.2:9000 http://127.0.0.1:9000
Console: http://172.17.0.2:9001 http://127.0.0.1:9001
Documentation: https://docs.min.io
监控容器
docker stats minio
4.3 浏览器访问
http://192.168.10.20:9001
账号密码:minioadmin/minioadmin
5. minio client 安装使用
虽然 MinIO 的网页端管理已经很方便了,但是官网还是给我们提供了基于命令行的客户端 MinIO Client(简称 mc),下面我们来讲讲它的使用方法。
5.1 常用命令
MinIO Client (mc) 为 ls,cat,cp,mirror,diff,find 等 UNIX 命令提供了一种替代方案。它支持文件系统和兼容 Amazon S3 的云存储服务(AWS Signature v2和v4)。MinIO 服务端中并没有自带客户端,所以我们需要安装配置完客户端后才能使用。
命令 | 作用 |
---|---|
ls | 列出文件和文件夹 |
mb | 创建一个存储桶或一个文件夹 |
cat | 显示文件和对象内容 |
pipe | 将一个STDIN重定向到一个对象或者文件或者STDOUT |
share | 生成用于共享的URL |
cp | 拷贝文件和对象 |
mirror | 给存储桶和文件夹做镜像 |
find | 基于参数查找文件 |
diff | 对两个文件夹或者存储桶比较差异 |
rm | 删除文件和对象 |
events | 管理对象通知 |
watch | 监听文件和对象的事件 |
policy | 管理访问策略 |
session | 为cp命令管理保存的会话 |
config | 管理mc配置文件 |
update | 检查软件更新 |
version | 输出版本信息 |
5.2 下载 minio client image
docker search minio
docker pull minio/mc
5.3 运行
启动之后会直接进入 sh-4.4#
docker run -it --entrypoint=/bin/sh minio/mc
输入mc version 查看版本信息
[root@c7-1 ~]#docker run -it --entrypoint=/bin/sh minio/mc
sh-4.4# mc version
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
NAME:
mc version - manage bucket versioning
......
5.4 minio/mc 绑定 minio server 服务
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> [--api API-SIGNATURE]
ALIAS:别名就是给你的云存储服务起了一个短点的外号。
S3 endpoint,access key 和 secret key 是你的云存储服务提供的。endpoint http://ip:9000,账号密码 minioadmin/minioadmin。
API 签名是可选参数,默认情况下,它被设置为 "S3v4"。
示例
### 注意端口,用的是 API 端口
sh-4.4# mc config host add minio http://192.168.10.20:9000 minioadmin minioadmin
Added `minio` successfully.
sh-4.4# mc ls minio
[2022-07-25 06:11:32 UTC] 0B test/
sh-4.4# mc ls minio/test
[2022-07-25 06:12:38 UTC] 181KiB STANDARD sun.jpg
5.5 创建存储桶
mc mb minio/dnps #创建一个名为 dnps 的存储桶
mc share download minio/test/small.jpg #共享 test 桶下 small.jpg 文件的下载路径
mc find minio/test --name "*.jpg" #查找 test 存储桶中的 jpg 文件
mc policy set download minio/dnps/ #设置权限:none, download, upload, public
mc policy list minio/dnps/ #查看存储桶当前权限
mc cp minio/test/small.jpg minio/dnps/ #拷贝文件和对象
标签:minio,mc,home,data,9000,使用,root,安装,Minio 来源: https://www.cnblogs.com/shenyuanhaojie/p/16518243.html