Minio Bucket事件通告配置:MySQL

作者: 四冶读史 | 来源:发表于2017-08-08 09:01 被阅读391次

    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

    相关文章

      网友评论

        本文标题:Minio Bucket事件通告配置:MySQL

        本文链接:https://www.haomeiwen.com/subject/opnzlxtx.html