通过 Redis 发布 MinIO 事件

简介

Minio 服务器支持与 Amazon S3 兼容的存储桶事件通知,以下目标包括 AMQPElasticsearchRedisnats.ioPostgreSQLApache 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