通过 Redis 发布 MinIO 事件
简介
Minio 服务器支持与 Amazon S3 兼容的存储桶事件通知,以下目标包括 AMQP、Elasticsearch、Redis、nats.io、PostgreSQL 和 Apache Kafka。本博客系列的第 3 部分介绍了如何使用 Redis 发送存储桶通知。
配置 Redis 的步骤
我在我的笔记本电脑上使用了 Ubuntu Linux 16.04、最新的 Minio 服务器二进制文件和 Redis PPA 3.0.7 版本进行此设置。
$ sudo add-apt-repository ppa:chris-lea/redis-server
$ sudo apt-get update
$ sudo apt-get install redis-server
您也可以从官方 网站 安装 Redis
修改 Redis 服务器配置文件“/etc/redis/redis.conf” 以启用密码访问。
requirepass yoursecret
重启 Redis 服务器。
$ sudo service redis-server restart
配置 Minio 的步骤
最新的 Minio 服务器二进制文件可以从 https://minio.io/downloads/ 下载。
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio
$ chmod +x minio
在本例中,“myphotos” 用作我的 Minio 服务器的数据目录。
$ ./minio server myphotos
Endpoint: http://10.1.10.150:9000 http://127.0.0.1:9000
AccessKey: 7I6R5G576YI641GS9J9F
SecretKey: SuycBIe+O/s5zXxU9w+N4wkXHpBCKa2H6Ptlrc8c
Region: us-east-1
...
...
Minio 服务器配置文件的默认位置是~/.minio/config.json。按如下所示更新‘config.json’ 中的 Redis 配置块
"redis": {
"1": {
"enable": true,
"address": "127.0.0.1:6379",
"password": "yoursecret",
"key": "bucketevents"
}
}
重启 Minio 服务器以反映上面做出的配置更改。“bucketevents” 是本示例中 Redis 使用的键。
使用 Minio 客户端启用存储桶通知
步骤 1:下载并安装 Minio 客户端
$ wget https://dl.minio.io/client/mc/release/linux-amd64/mc
$ chmod 755 mc
步骤 2:添加 Minio 服务器主机别名信息
使用指向 Minio 服务器的访问密钥和密钥配置 Minio 客户端。
$ ./mc config host add myminio https://:9000 7I6R5G576YI641GS9J9F SuycBIe+O/s5zXxU9w+N4wkXHpBCKa2H6Ptlrc8c
步骤 3:设置存储桶通知
在本例中,我们只会在将 JPEG 图像上传或从 ‘images’ 存储桶(位于 ‘myminio’ 服务器上)删除时启用存储桶事件。此处的 ARN 值为 arn:minio:sqs:us-east-1:1:redis. 要了解有关 ARN 的更多信息,请参阅 AWS ARN 文档。
$ ./mc mb myminio/images
$ ./mc events add myminio/images arn:minio:sqs:us-east-1:1:redis --suffix .jpg
$ ./mc events list myminio/images
arn:minio:sqs:us-east-1:1:redis s3:ObjectCreated:*,s3:ObjectRemoved:* Filter: suffix=”.jpg”
步骤 4:在 Redis 上测试
Redis 带有一个方便的命令行界面,即redis-cli。它使用“monitor” 命令来在控制台上打印所有通知。
$ redis-cli -a yoursecret
127.0.0.1:6379> monitor
OK
打开另一个终端并将 JPEG 图像上传到“images”存储桶。
$ ./mc cp myphoto.jpg myminio/images
下面“redis-cli” 在控制台上打印事件通知。
如有其他问题和意见,请加入我们的 Slack 聊天室:https://slack.minio.io