您可以通过OSS管理控制台配置事件通知规则,自定义您关注的文件(Object),当这些Object发生指定事件时,您可以通过消息服务指定的接收终端,及时收到Object的事件通知。
场景描述
某企业在华东1(杭州)地域创建了名为srcbucket的存储空间(Bucket),Bucket内包含了不同日期持续生成的以log为前缀的日志文件log/date1.txt、log/date2.txt和log/date3.txt等,以及以周为单位收集的以destdir为前缀的客户案例图片文件destdir/photo1.jpg、destdir/photo2.jpg等。
srcbucket
└── log/
├── date1.txt
├── date2.txt
├── date3.txt
├── .......
└── destdir/
├── photo1.jpg
├── photo2.jpg
├── ......
该企业子公司需要将srcbucket内以上持续生成的日志以及客户案例图片文件、以及这些文件在任意时间内产生的变化(例如文件的增、删、改操作)实时同步至母公司位于英国(伦敦)地域下名为destbucket的存储空间,并希望公司全员能及时了解srcbucket以及destbucket内与前缀log以及destdir匹配的文件的变化情况。
为实现以上需求,您需要为srcbucket配置跨区域复制规则,同时还需要为srcbucket以及destbucket配置事件通知。
步骤一:创建队列
- 登录消息服务MNS管理控制台。
- 在左侧导航栏,单击队列列表。
- 在顶部导航栏,选择华东1(杭州)地域。
- 在队列列表页面,单击创建队列。
- 在创建队列面板,队列名称设置为myqueue1,其他参数保持默认配置。
- 单击确定。
- 重复上述步骤在英国(伦敦)地域创建用于接收目标存储空间destbucket事件通知的队列myqueue2。
步骤二:为srcbucket配置跨区域复制
- 登录OSS管理控制台。
- 单击Bucket列表,然后单击srcbucket。
- 在左侧导航栏,选择。
- 在跨区域复制页面,单击跨区域复制。
- 在跨区域复制面板,配置以下参数。
参数 |
说明 |
目标Bucket |
选择destbucket,然后选择英国(伦敦) |
加速类型 |
如果要提升中国内地srcbucket与非中国内地的destbucket之间跨区域复制时的传输速度,建议选择传输加速。开启传输加速功能,OSS还会额外收取传输加速费用。计费方式,请参见传输加速费用。
|
数据复制对象 |
选择指定文件名前缀进行同步,并添加前缀destdir/以及log/。
|
数据复制策略 |
选择增/删/改同步。
|
复制历史数据 |
选择复制。
|
- 单击确定。
步骤三:为srcbucket及destbucket配置事件通知
重要 因步骤二中跨区域复制规则中指定了同步历史数据,且需要同步的历史数据较多,会触发大量的消息。如果您不希望同步历史数据过程中触发消息,建议待历史数据同步完成后再开启事件通知。
- 为源存储空间srcbucket配置事件通知。
- 登录OSS管理控制台。
- 单击Bucket列表,然后单击srcbucket。
- 在左侧导航栏,选择。
- 在事件通知页面,单击创建规则。
- 在创建规则面板,按如下说明配置各项参数,然后单击确定。
参数 |
说明 |
规则名称 |
将事件通知规则名称设置notification1。
|
事件类型 |
选择PutObject、CopyObject、DeleteObject和DeleteObjects。
|
资源描述 |
选择前后缀,并依次添加前缀log/以及destdir/。
|
接收终端 |
选择队列,并填写步骤一中创建的队列名称myqueue1。
|
- 为目标存储空间destbucket配置事件通知。
- 单击左侧导航栏的Bucket列表,然后单击destbucket。
- 在左侧导航栏,选择。
- 在事件通知页面,单击创建规则。
- 在创建规则面板,按如下说明配置各项参数,然后单击确定。
参数 |
说明 |
规则名称 |
将事件通知规则名称设置notification2。
|
事件类型 |
选择ObjectReplication:ObjectCreated、ObjectReplication:ObjectRemoved和ObjectReplication:ObjectModified。
|
资源描述 |
选择前后缀,并依次添加前缀log/以及destdir/。
|
接收终端 |
选择队列,并填写步骤一中创建的队列名称myqueue2。
|
以上步骤配置完成后,事件通知规则约10分钟后生效。
步骤四:接收消息
当触发了事件匹配规则时,消息服务将自动创建主题(Topic),Topic名称格式为mns-en-topics-[Product]-[RuleName]-[Timestamp]
,例如mns-en-topics-oss-notification1-96828124450125
。此时,您需要为该Topic创建订阅,并在订阅规则中指定接收端地址。
- 为Topic创建订阅。
- 登录消息服务MNS管理控制台。
- 在左侧导航栏,单击主题列表。
- 在顶部导航栏,选择华东1(杭州)地域。
- 在自动创建的Topic右侧的操作栏下,单击查看订阅。
- 在目标Topic订阅页面,单击订阅管理,然后单击创建订阅。
- 在创建订阅页面,为源存储空间srcbucket创建订阅。名称输入mysubscription1,推送类型选择队列,接收端地址输入myqueue1,其他参数保留默认配置。
- 单击确定。
- 重复上述步骤在英国(伦敦)地域为目标存储空间destbucket创建订阅mysubscription2,推送类型选择队列,接收端地址指定为myqueue2,其他参数保留默认配置。
- 接收通知。
- 在左侧导航栏,单击队列列表。
- 选择目标队列myqueue1右侧操作栏下的。
- 在接收消息区域,单击右上角的接收消息。
此时,您将接收到源存储空间srcbucket内与前缀log以及destdir匹配的文件的增、删、改操作的事件通知。
- 重复上述步骤为目标存储空间destbucket对应的队列myqueue2配置接收通知。配置完成后,您将接收到destbucket内由于跨区域复制规则生成、覆盖或者删除文件的事件通知。
当您不再需要接收相关事件通知时,请及时删除相应的事件通知规则。但是,事件通知规则删除后,不会同步删除自动创建的Topic。为避免产生不必要的费用,请及时删除不再使用的Topic。