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而定

开启步骤

  1. 创建用于接收notification的EMQ,并将queue的SEND_MESSAGE权限赋予developId: 90454;
  2. 将需要开启notification的bucket names连同创建的emq name通过QQ发送给我们;
  3. 我们会在后台为给定的buckets开启notification,并在QQ中反馈;
  4. 之后就可以从EMQ中读取notification消息了。

results matching ""

    No results matching ""