.Net Core 3.1|8.0 回调Minio WebHook事件进行数据同步

Identifier(标识符)为后续要用到的唯一通知事件字符串

如保存的时候报错显示
无法初始化 Webhook yanga 的队列存储:mkdir /data/nominio/minio-webhook-yanga:权限不足

我记得保存的时候好像要API的回调接口需要通的,具体忘记了

csharp 复制代码
看一下之前配置的: systemd 启动的 MinIO
看一下 service 文件:
cat /etc/systemd/system/minio.service

重点看这行:
User=minio
Group=minio

只要看到这两行,目录属主就必须是 minio

执行下面命令
sudo mkdir -p /data/nominio
sudo chown -R minio:minio /data/nominio
sudo chmod 750 /data/nominio

然后WebUI显示重启,点击重启即可


上面已经重启成功了,如API接口在线,状态为Online,但这个时候API回调暂时还无法使用,需要给Bucket配置通知事件

第一种方法:可使用mc命令,如下

csharp 复制代码
指定Bucket添加通知事件
mc event add laoyang/test arn:minio:sqs::yanga:webhook  --event put,delete 
指定Bucket移除通知事件
mc event remove laoyang/test arn:minio:sqs::yanga:webhook  --event put,delete 

//  laoyang/test
//  laoyang为本地mc设置远程minio的自定义名称,test为minio上授权的Bucket

yanga为WebUI界面,事件菜单里添加的WebHook的自定义的唯一标识字符串Identifier,直接替换掉你定义的即可

执行 mc event list laoyang/test 可以看到该Bucket已经添加上了通知事件了

第二种可以使用代码添加事件通知

csharp 复制代码
/// <summary>
/// 配置Webhook事件通知
/// </summary>
private static async Task ConfigureWebhookNotification()
{
    try
    {
        //// 检查当前的通知配置
        //var currentConfig = await _client.GetBucketNotificationsAsync("yangdafengceshi");
        //_client.RemoveAllBucketNotificationsAsync("yyyy");
        //Console.WriteLine($"当前配置: {currentConfig.ToXML()}");

        // 定义要监听的事件(例如:对象创建、删除)
        var events = new List<EventType>
        {
            EventType.ObjectCreatedAll,  // 所有对象创建事件
            EventType.ObjectRemovedAll   // 所有对象删除事件
        };

        // 创建Webhook通知配置(修正ARN格式)

        var queueConfig = new QueueConfig("arn:minio:sqs::yanga:webhook");

        //var queueConfig = new QueueConfig("arn:minio:sqs::1:webhook");
        //queueConfig.Queue = $"{CallBackApi}/api/CallBack";

        queueConfig.AddEvents(events);

        // 配置桶通知
        var bucketNotification = new BucketNotification();
        bucketNotification.AddQueue(queueConfig);

        // 应用到指定桶(注意替换为实际桶名)
        await _client.SetBucketNotificationsAsync("test", bucketNotification);

        Console.WriteLine($"test 添加事件通知成功 \n");
    }
    catch (Exception ex)
    {
        Console.WriteLine("所有ARN格式都失败了");
        Console.WriteLine($" 配置Webhook事件通知  异常:{ex.Message}!!\n");
    }

}

下一步,我们启动回调API程序

在Minio服务端上传一个文件看看

至此完结,程序我放在了下面

点击Minio WebHook事件进行数据同步代码

Linux服务端配置见另一篇文章
Minio 服务端部署Lniux麒麟V10教程

Linux客户端同步Minio数据见另一篇
Linux客户端利用MinIO对服务器数据进行同步

相关推荐
csdn_aspnet5 小时前
C# .NetCore Swagger ISchemaFilter 处理枚举、特殊类型
c#·.netcore·swagger
code_long9 小时前
.net core 连接打印机 使用zpl指令打印机,并且位图本地渲染zpl指令
c#·.netcore·位图·打印机·模板编辑·模板预览
csdn_aspnet12 小时前
C# .NetCore Swagger ISchemaFilter Long 转 String 防精度丢失
c#·.netcore·swagger
csdn_aspnet1 天前
C# .NetCore Swagger ISchemaFilter 注入示例值、描述
c#·.netcore·swagger
宝桥南山3 天前
.NET 11 - 尝试一下Minimal API中的异步验证新特性
microsoft·微软·c#·asp.net·.net·.netcore
jonyleek4 天前
JVS私有化文档系统运维避坑指南:5大断点检测与加固实践(K8S+MinIO+ES)
elasticsearch·minio·clamav·jvs·k8s运维·文档系统·权限同步
上位机妹子8 天前
EF Core 两种继承映射:每层次一张表(TPH)与每类型一张表(TPT)
数据库·c#·.netcore·ef core
做个文艺程序员9 天前
MinIO第05篇:MinIO事件通知机制与Kafka集成——构建SaaS平台的异步文件处理管道
kafka·消息队列·springboot·minio·事件驱动·异步处理
做个文艺程序员9 天前
MinIO第07篇:基于MinIO + Spring AI + pgvector构建RAG知识库(Java全栈实战)
minio·向量数据库·ai大模型·rag·springai·pgvector
做个文艺程序员9 天前
MinIO第06篇:分布式集群部署、纠删码调优与生产级性能优化
性能调优·minio·高可用·安全漏洞·分布式部署·纠删码