暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式文件服务系统Minio

程序老哥 2021-07-16
1319

一、什么是Minio

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。


二、服务端部署

1

Docker 容器部署

docker run -d -p 9000:9000 -p 9001:9001 --name minio \
--restart=always \
-e MINIO_ACCESS_KEY=admin \
-e MINIO_SECRET_KEY=admin@123 \
-v /data/minio:/data \
minio/minio:RELEASE.2021-03-26T00-00-41Z-25-g87bb1113b server /data


注:密码至少为8位,不能为latest版本,因为最新版本差异比较大


最新版镜像启动脚本

docker run -d -p 9000:9000 -p 9001:9001 --name minio \
--restart=always \
-e MINIO_ROOT_USER=admin \
-e MINIO_ROOT_PASSWORD=admin@123 \
-v /data/minio:/data \
minio/minio server --console-address ":9001" /data


最新版镜像启动脚本中需要增加--console-address ":9001"参数,最新版采用console来管理,关于版本的区别可以参考官网。

2

二进制安装

wget https://dl.min.io/server/minio/release/linux-amd64/miniochmod +x minio./minio server /data


3

运行

通过docker安装后,在浏览器中输入:http://localhost:9000

输入用户名密码:admin/123456789。之前设置的ACCESS_KEY和SECRET_KEY


4

创建bucket

点击右下角的加号,“create bucket”,创建完android和ios


5

上传、下载、分享

选中bucket后,点右下角的加号,选择upload,上传文件。


三、客户端部署

MinIO Client (mc)为ls,cat,cp,mirror,diff,find等UNIX命令提供了一种替代方案。它支持文件系统和兼容Amazon S3的云存储服务(AWS Signature v2和v4)。


ls       列出文件和文件夹。
mb 创建一个存储桶或一个文件夹。
cat 显示文件和对象内容。
pipe 将一个STDIN重定向到一个对象或者文件或者STDOUT。
share 生成用于共享的URL。
cp 拷贝文件和对象。
mirror 给存储桶和文件夹做镜像。
find 基于参数查找文件。
diff 对两个文件夹或者存储桶比较差异。
rm 删除文件和对象。
events 管理对象通知。
watch 监听文件和对象的事件。
policy 管理访问策略。
session 为cp命令管理保存的会话。
config 管理mc配置文件。
update 检查软件更新。
version 输出版本信息。


1

Docker容器

docker pull minio/mc

 

2

二进制安装

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
./mc --help


3

使用

我们使用mc来管理本地安装的服务端minio,先停止服务端,再运行客户端:

docker run -it --entrypoint=/bin/sh minio/mc
sh-4.4# mc alias set local http://192.168.6.249:9000
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.
Enter Access Key: admin
Enter Secret Key:
Added `local` successfully.



这里的local是为本地minio服务取的别名,需要输入access key和secret key,回车后如果出Added `local` successfully,则说明部署成功。


4

常用命令

  • 查看bucket

sh-4.4# mc ls local/android
[2021-01-15 03:28:49 UTC] 117KiB 合格1:yuvj420p.jpg
[2021-01-15 03:31:21 UTC] 5.7KiB 微信图片_20201118110610.png


  • 创建bucket

sh-4.4# mc mb local/test 
Bucket created successfully `local/test`.
sh-4.4# mc ls local
[2021-01-15 03:28:43 UTC] 0B android/
[2021-01-15 03:31:41 UTC] 0B ios/
[2021-01-15 05:28:25 UTC] 0B test/


通过服务端也可以看到创建的bucket


  • 按树状形式展示

sh-4.4# mc tree local
local
├─ android
├─ ios
└─ test


  • 查看内容

sh-4.4# mc ls local/test             
[2021-01-15 05:33:15 UTC] 10B minio.txt


sh-4.4# mc cat local/test/minio.txt
test minio
sh-4.4#


  • 拷贝文件

拷贝文件,将test下的minio.txt拷贝到ios目录下

sh-4.4# mc cp local/test/minio.txt local/ios/   
...49:9000/test/minio.txt: 10 B / 10 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 199 B/s 0s


sh-4.4# mc ls local/ios
[2021-01-15 03:31:50 UTC] 45KiB core-min.js
[2021-01-15 05:35:10 UTC] 10B minio.txt


  • 删除bucket

sh-4.4# mc ls local
[2021-01-15 03:28:43 UTC] 0B android/
[2021-01-15 03:31:41 UTC] 0B ios/
[2021-01-15 05:28:25 UTC] 0B test/


sh-4.4# mc rb local/test --force
Removed `local/test` successfully.


sh-4.4# mc ls local
[2021-01-15 03:28:43 UTC] 0B android/
[2021-01-15 03:31:41 UTC] 0B ios/


  • 删除bucket中的文件

sh-4.4# mc ls local/test
[2021-01-15 05:40:30 UTC] 10B minio.txt


sh-4.4# mc rm local/test/minio.txt
Removing `local/test/minio.txt`.


sh-4.4# mc ls local/test
sh-4.4#



/

/

/ 微信号 / 程序老哥/

文章转载自程序老哥,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论