FDS Notification简介
Notification是FDS的事件通知机制,用户可以为Bucket开启Notification,FDS会将PUT/POST/DELETE事件消息发送到用户指定的EMQ中,用户可以从EMQ中读取事件消息。
应用场景
业务可以通过Notification功能获取Bucket下的Object上传与删除的通知。
功能说明
开启级别
Notification可以在Bucket级别开启,Bucket下Object的PUT/POST/DELETE事件消息会发送到用户指定的EMQ队列中。
延时
以Put Object为例,延时可以理解为从Put Object动作完成,到从EMQ中能读出对应的消息的时间,FDS Notification的延时在10分钟到小时级别。
重复消息
FDS notification的机制保证事件的消息至少被发送到EMQ一次;在个别情况下,同一事件的消息可能被多次发送到EMQ中,因此也可能被多次接收。
消息格式
事件的消息为Json格式,字段包括:bucketName, objectName, updateTime, contentLength, method。method的值可以是PUT/POST/DELETE,下面是一个method为PUT的消息例子:
{
"bucketName":"testNofificationBucket1",
"objectName":"testObject1",
"updateTime":1464947859563,
"contentLength":1024,
"method":"PUT"
}
method为DELETE的消息的contentLength字段为0,下面是一个例子:
{
"bucketName":"testNofificationBucket1",
"objectName":"testObject1",
"updateTime":1464947859478,
"contentLength":0,
"method":"DELETE"
}
消息类型
Object的操作与消息的method字段的对应关系为:
API | method Of Notification |
---|---|
Put Object | PUT |
Post Object | POST |
Complete Multipart Upload | PUT |
Delete Object | DELETE |
Delete multiple Object | DELETE |
Restore Object | PUT或者POST,根据被restore的object上传时是Put还是Post而定 |
Rename Object | 两条消息,以rename objectA to objectB为例: 1. 为objectA产生一条消息,method为DELETE; 2. 为objectB产生一条消息,method为PUT或者POST,根据objectA被上传时是Put还是Post而定 |
开启步骤
- 创建用于接收notification的EMQ,并将queue的SEND_MESSAGE权限赋予developId: 90454;
- 将需要开启notification的bucket names连同创建的emq name通过QQ发送给我们;
- 我们会在后台为给定的buckets开启notification,并在QQ中反馈;
- 之后就可以从EMQ中读取notification消息了。