赞
踩
minio的最新版2023-02-27T18-10-45Z有些较大的变化,老版本的minio只需要一个端口9000即可。可以另外指定自带的管理后台的地址,但也可以使用默认的9000。
但新版的minio将minio console管理后台融入了进来。必须另外指定一个不同的端口,不然会报错:
ERROR Unable to start the server: --console-address cannot be same as --address
MinIO Console是一个Minio的图形化界面工具,这篇文章中有相关的介绍:Minio图形化界面工具MinIO Console的搭建使用_minio-console-CSDN博客,比原自带的管理后台功能多不少。可能也正是因此原来的9000端口业务进行了隐藏。
另外新版本的minio如果使用docker部署,分享地址内的ip则是docker容器内的ip,复制地址替换为宿主机地址访问会报错。需要增加一个选项 MINIO_SERVER_URL 来指定服务器的地址。即在启动时增加环境变量:MINIO_SERVER_URL:http://宿主机ip:9000。还遇到其它的报错:
ERROR Unable to validate passed arguments: host in server address should be this server
如后面的示例所示。
- #minio最新版2023-02-27T18-10-45Z的正确启动命令示例记录
- docker run -di \
- -p 9000:9000 \
- -p 9001:9001 \
- --name minio \
- --restart=always \
- -e "MINIO_ROOT_USER=admin \
- -e "MINIO_ROOT_PASSWORD=test123 \
- -e "MINIO_SERVER_URL=http://192.168.1.11:9000/" \
- -v /disk/minio_data:/data \
- -v /disk/minio_config:/root/.minio \
- minio/minio server /data \
- --console-address ":9001"
使用MinIO Console可以直接在界面操作用户策略和用户,然后将桶和策略用户绑定,不过除此之外还需要设置桶的下载策略,即以前设置为download的步骤。否则使用程序进行wget时会报HTTP request sent, awaiting response... 403 Forbidden。
默认所有的存储桶策略都是private,无法访问其中的图片,需要在Access Rules中添加规则,prefix设置为*,Access设置为readonly,添加这个策略即可解决使用wget下载的问题。
官方文档虽然有一个Minio Client指南:MinIO Client — MinIO Object Storage for Linux 但我觉得真讲得不够清楚,反正我看了几遍,试着处理不好用。后来自己琢磨才发现用法。
- #安装方法,可以使用docker安装,官方文档如下:
- root@kermit:~# docker pull minio/mc
- root@kermit:~# docker run minio/mc ls play
- root@kermit:~# docker run -it --entrypoint=/bin/sh minio/mc
mc就像是一个redis client那样的东西,通过docker安装每次都创建一个容器,完全没必要,而且交互还不是很方便。上面第二条命令是直接查看默认的minio官网的一个OBS。不好用。mc就是一个命令而已,根本没有必要docker安装,直接下载mc文件添加执行权限就可以使用了。方法如下:
- wget https://dl.min.io/client/mc/release/linux-amd64/mc -P /usr/local/bin/
- chmod +x /usr/local/bin/mc
配置mc的云服务,也叫添加一个云存储服务,因为默认mc就带有一些去服务的配置,比如play,比如gcs和local。使用命令:
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> [--api API-SIGNATURE]
<ALIAS>别名就是给你的云存储服务起了一个短点的外号。必须要的。就是替代http://127.0.0.1:9000这个地址
<YOUR-S3-ENDPOINT>就是你的云服务的地址,比如http://127.0.0.1:9000
<YOUR-ACCESS-KEY> <YOUR-SECRET-KEY>是你的云存储服务账号密码,在启动docker容器时指定的。
API签名是可选参数,默认情况下,它被设置为"S3v4"。
云服务的配置文件在/root/.ms/config.json文件中,里面就保存了已经配置的云服务,比如play。进行如下配置前后可以对比查看一下配置文件。
- #删除默认的play服务
- root@kermit:~/.mc# mc config host remove play
- Removed `play` successfully.
- #可以直接add配置实现覆盖已有的配置
- root@kermit:~/.mc# mc config host add local http://127.0.0.1:9000/ username password
- Added `local` successfully.
- root@kermit:~/.mc# mc config host remove gcs
- Removed `gcs` successfully.
mc的命令选项很多,内部也有很多command,需要慢慢尝试。ls可以列出一个云服务下面的BUGKETG列表。进入bucket可以列出所有的文件列表。使用如下,更多这方面的内容可以查看官网。
- root@kermit:~/.mc# mc ls local
- [2020-11-18 09:21:18 CST] 0B kermit/
- root@kermit:~/.mc# mc ls local/kermit
- [2020-11-18 09:21:41 CST] 399KiB 11dae1.jpg
- root@kermit:~/.mc# mc mb local/images
- Bucket created successfully `local/images`.
- #其它命令:删除一天前的对象
- mc rm --force --older-than=1 play/mybucket/oldsongs
- #生成一个对一个对象有4小时访问权限的URL。
- mc share download --expire 4h play/mybucket/myobject.txt
- #持续从s3存储桶中查找所有jpeg图像,并复制到minio "play/bucket"存储桶
- mc find s3/bucket --name "*.jpg" --watch --exec "mc cp {} play/bucket"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。