1.概述
Minio可以监控Bucket及其下文件内容变更的events,并给出变更信息,展示变更信息的形式多样,可以根据自己的需求选择配置,官网提供的方式有:amqp、nats、elasticsearch、redis、postgresql、kafka、webhook、mysql和mqtt。本文档以MySQL为例,展示配置和效果。数据库用的是MySQL的衍生版本mariadb,数据库服务器用的是centos7。
2.步骤
2.1.安装MySQL
见http://www.jianshu.com/p/a710977c3eb2
2.2.安装minio
下载二进制安装文件,并赋予执行权限
cd /opt
wget https://dl.minio.io/server/minio/release/linux-amd64/minio
chmod +x minio
更改配置文件路径启动
cd /opt
./minio server --config-dir=/ete/minio /data/test
这么做的目的是在/etc/minio 下生成config.json文件
2.3.生成https访问key
cd /etc/minio/certs
openssl genrsa -out private.key 2048
openssl req -new -x509 -days 3650 -key private.key -out public.crt -subj "/C=CN/ST=CS/L=YuHua/O=organization/CN=www.example.com"
执行完后,可看到如下文件
ll
total 8
drwx------. 2 root root 6 Aug 4 06:10 CAs
-rw-r--r--. 1 root root 1679 Aug 4 06:32 private.key
-rw-r--r--. 1 root root 1285 Aug 4 06:41 public.crt
2.4.配置config.json
配置内容如下:
"mysql": {
"1": {
"enable": true,
"format": "namespace",
"dsnString": "",
"table": "images",
"host": "ip",
"port": "3306",
"user": "minio",
"password": "yourpass",
"database": "miniodb"
}
}
2.5.配置事件通告
# Create bucket named `images` in play
mc mb play/images
# Add notification configuration on the `images` bucket using the MySQL ARN. The --suffix argument filters events.
mc events add play/images arn:minio:sqs:cn-hn-hh:1:mysql --suffix .jpg
Successfully added arn:minio:sqs:cn-hn-hh:1:mysql
# Print out the notification configuration on the `images` bucket.
shimatoAir:Desktop shiye$ mc events list play/images
arn:minio:sqs:cn-hn-hh:1:mysql s3:ObjectCreated:*,s3:ObjectRemoved:*,s3:ObjectAccessed:* Filter: suffix=".jpg"
2.6.测试MySQL配置
上传.jpg文件
mc cp *.jpg play/images
[2] ◑ xxxx.jpg
[3] ◒ yyyy.jpg
...??新.jpg: 73.92 KB / 1.71 MB ░░░░░░░░░░░░░░░░░░░░░░
4.21% 290.49 KB/s 5...??本.jpg: 159.77 KB / 1.71 MB ▓▓ ░░░░░░░░░░░░░░░░░░░
9.10% 420.79 KB/s 3...??本.jpg: 1.71 MB / 1.71 MB ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.00% 2.85 MB/s 0
查看数据库
mysql> select key_name from images;
+-------------------------------------+
| key_name |
+-------------------------------------+
| images/33.jpg |
| images/defaultHead.jpg |
| images/xxxx.jpg |
| images/yyyy.jpg |
+-------------------------------------+
4 rows in set (0.00 sec)
上传一张png图片,发现数据库并没有记录,从这可知,如果需要对文件类型进行events监控,则需要绑定,方式如下:
mc events add play/images arn:minio:sqs:cn-hn-hh:1:mysql --suffix .png
发现此种方式行不通,提示:
mc: <ERROR> Cannot enable notification on the specified bucket. Configurations overlap.
Configurations on the same bucket cannot share a common event type.
提示说明“配置重叠,同一个bucket上的配置不能共享一个公共事件类型。”意思是说,同一个bucket只能过一种类型的后缀,这可定是存在问题的,从这可得以下结论:
1)免费的minio只开放一种过滤后缀;
2)添加多后缀过滤方式没找到,但我尝试了各种类型,也类比了正则表达式的形式,更无语的是官网找不到多后缀过滤的配置;
3)minio本身就只支持单后缀过滤;
4)如果要过滤多种文件格式呢?有什么解决办法?有,a.不添加过滤,也就是监控所有文件格式;b.根据文件类型,建立不同的bucket;
参考地址:
https://docs.minio.io/docs/minio-bucket-notification-guide
网友评论