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服务端上传一个文件看看

至此完结,程序我放在了下面
Linux服务端配置见另一篇文章
Minio 服务端部署Lniux麒麟V10教程
Linux客户端同步Minio数据见另一篇
Linux客户端利用MinIO对服务器数据进行同步