MinIO存储桶通知 - Kafka小测

概述

公司的某个项目需要用上这玩意,所以在本地搭建测试环境,经过一番折腾,测试通过,博文记录,用以备忘

MinIO安装

该节不做说明,网络有很多现成的帖子,自行搜索去

配置步骤

控制台添加事件通知



将具体存储桶和事件通知关联起来

点击"Save"保存即可。

注意:

  1. evtest是我预先创建的存储桶,具体你们根据实际场景变更
  2. 填写了桶文件的前后缀,当桶路径匹配不上的时候,不会发送事件通知

事件通知内容样例

PUT

bash 复制代码
{
	"EventName": "s3:ObjectCreated:Put",
	"Key": "evtest/111.conf",
	"Records": [
		{
			"eventVersion": "2.0",
			"eventSource": "minio:s3",
			"awsRegion": "",
			"eventTime": "2024-07-22T01:31:23.190Z",
			"eventName": "s3:ObjectCreated:Put",
			"userIdentity": {
				"principalId": "admin"
			},
			"requestParameters": {
				"principalId": "admin",
				"region": "",
				"sourceIPAddress": "192.168.64.1"
			},
			"responseElements": {
				"x-amz-id-2": "dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8",
				"x-amz-request-id": "17E464E2E26B8A25",
				"x-minio-deployment-id": "3f95da32-9ae8-4983-9622-df88df89410d",
				"x-minio-origin-endpoint": "http://192.168.64.136:9000"
			},
			"s3": {
				"s3SchemaVersion": "1.0",
				"configurationId": "Config",
				"bucket": {
					"name": "evtest",
					"ownerIdentity": {
						"principalId": "admin"
					},
					"arn": "arn:aws:s3:::evtest"
				},
				"object": {
					"key": "111.conf",
					"size": 4763,
					"eTag": "15c4659f418b62e001f7d597dedaf51c",
					"contentType": "application/octet-stream",
					"userMetadata": {
						"content-type": "application/octet-stream"
					},
					"sequencer": "17E464E2E272AAA7"
				}
			},
			"source": {
				"host": "192.168.64.1",
				"port": "",
				"userAgent": "MinIO (linux; amd64) minio-go/v7.0.73 MinIO Console/(dev)"
			}
		}
	]
}

DELETE

bash 复制代码
{
	"EventName": "s3:ObjectRemoved:Delete",
	"Key": "evtest/111.conf",
	"Records": [
		{
			"eventVersion": "2.0",
			"eventSource": "minio:s3",
			"awsRegion": "",
			"eventTime": "2024-07-22T01:56:53.672Z",
			"eventName": "s3:ObjectRemoved:Delete",
			"userIdentity": {
				"principalId": "admin"
			},
			"requestParameters": {
				"principalId": "admin",
				"region": "",
				"sourceIPAddress": "192.168.64.1"
			},
			"responseElements": {
				"content-length": "154",
				"x-amz-id-2": "dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8",
				"x-amz-request-id": "17E466473A6E11BB",
				"x-minio-deployment-id": "3f95da32-9ae8-4983-9622-df88df89410d",
				"x-minio-origin-endpoint": "http://192.168.64.136:9000"
			},
			"s3": {
				"s3SchemaVersion": "1.0",
				"configurationId": "Config",
				"bucket": {
					"name": "evtest",
					"ownerIdentity": {
						"principalId": "admin"
					},
					"arn": "arn:aws:s3:::evtest"
				},
				"object": {
					"key": "111.conf",
					"sequencer": "17E466473A7E072B"
				}
			},
			"source": {
				"host": "192.168.64.1",
				"port": "",
				"userAgent": "MinIO (linux; amd64) minio-go/v7.0.73 MinIO Console/(dev)"
			}
		}
	]
}
bash 复制代码
{
	"EventName": "s3:ObjectAccessed:Head",
	"Key": "evtest/111.conf",
	"Records": [
		{
			"eventVersion": "2.0",
			"eventSource": "minio:s3",
			"awsRegion": "",
			"eventTime": "2024-07-22T01:56:46.230Z",
			"eventName": "s3:ObjectAccessed:Head",
			"userIdentity": {
				"principalId": "admin"
			},
			"requestParameters": {
				"principalId": "admin",
				"region": "",
				"sourceIPAddress": "192.168.64.1"
			},
			"responseElements": {
				"content-length": "4763",
				"x-amz-id-2": "dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8",
				"x-amz-request-id": "17E466457ED88843",
				"x-minio-deployment-id": "3f95da32-9ae8-4983-9622-df88df89410d",
				"x-minio-origin-endpoint": "http://192.168.64.136:9000"
			},
			"s3": {
				"s3SchemaVersion": "1.0",
				"configurationId": "Config",
				"bucket": {
					"name": "evtest",
					"ownerIdentity": {
						"principalId": "admin"
					},
					"arn": "arn:aws:s3:::evtest"
				},
				"object": {
					"key": "111.conf",
					"size": 4763,
					"eTag": "15c4659f418b62e001f7d597dedaf51c",
					"contentType": "application/octet-stream",
					"userMetadata": {
						"content-type": "application/octet-stream"
					},
					"sequencer": "17E464E2E272AAA7"
				}
			},
			"source": {
				"host": "192.168.64.1",
				"port": "",
				"userAgent": "MinIO (linux; amd64) minio-go/v7.0.73 MinIO Console/(dev)"
			}
		}
	]
}

以上通知样例都是通过MinIO Console操作,然后从Kafka接收到的具体内容

参考链接

Minio Bucket 通知试用&&说明
MinIO存储桶通知指南
发布事件到Kafka

相关推荐
aLTttY3 小时前
【Redis实战】分布式锁的N种实现方案对比与避坑指南
数据库·redis·分布式
小江的记录本13 小时前
【微服务与云原生架构】DevOps、CI/CD流水线、GitOps 系统性知识体系
分布式·后端·ci/cd·微服务·云原生·架构·devops
2603_9547083115 小时前
微电网混合控制架构:主从与对等控制的优势融合
分布式·安全·架构·能源·需求分析
zhangzeyuaaa15 小时前
Python多进程同步与共享内存完全指南:从Lock到分布式共享
开发语言·分布式·python
aini_lovee15 小时前
多智能体点对点转换的分布式模型预测控制(DMPC)
分布式
_F_y16 小时前
仿RabbitMQ实现消息队列-项目设计
分布式·rabbitmq
keep intensify18 小时前
MIT 6.824 lab3B/C
分布式·后端·golang
java1234_小锋18 小时前
RabbitMQ中有哪几种交换机类型?
分布式·rabbitmq
代码漫谈19 小时前
探索RabbitMQ集群:如何实现消息的高可用性和负载均衡
分布式·消息队列·rabbitmq·负载均衡
weisian1511 天前
Java并发编程--45-分布式一致性协议入门:Raft、Paxos与ZAB的核心思想
java·分布式·raft·paxos·zab