赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 对象存储
  4. 操作指南
  5. 数据处理
  6. 事件通知
  7. 教程示例:结合轻量消息队列实现OSS事件通知

教程示例:结合轻量消息队列实现OSS事件通知

  • 事件通知
  • 发布于 2025-04-21
  • 0 次阅读
文档编辑
文档编辑

通过OSS管理控制台配置事件通知规则,自定义关注的文件(Object),当这些文件发生指定事件时,可通过消息服务接收通知。

场景描述

某企业在华东1(杭州)地域创建了名为srcbucket的存储空间(Bucket),其中包含以log为前缀的日志文件和以destdir为前缀的客户案例图片文件。

srcbucket
    └── log/
       ├── date1.txt
       ├── date2.txt
       ├── date3.txt
       ├── .......
    └── destdir/       
       ├── photo1.jpg
       ├── photo2.jpg
       ├── ......

该企业子公司需要将srcbucket内以上持续生成的日志以及客户案例图片文件、以及这些文件在任意时间内产生的变化(例如文件的增、删、改操作)实时同步至母公司位于英国(伦敦)地域下名为destbucket的存储空间,并希望公司全员能及时了解srcbucket以及destbucket内与前缀log以及destdir匹配的文件的变化情况。

为实现以上需求,您需要为srcbucket配置跨区域复制规则,同时还需要为srcbucket以及destbucket配置事件通知。

步骤一:创建队列

  1. 登录轻量消息队列(原 MNS)管理控制台。

  2. 在左侧导航栏,选择队列模型 > 队列列表。

  3. 在顶部导航栏,选择华东1(杭州)地域。

  4. 在队列列表页面,单击创建队列。队列名称设置为myqueue1,其他参数保持默认配置。

  5. 单击确定。

  6. 重复上述步骤在英国(伦敦)地域创建用于接收目标存储空间destbucket事件通知的队列myqueue2。

步骤二:为srcbucket配置跨区域复制

  1. 登录OSS管理控制台。

  2. 单击Bucket列表,然后单击srcbucket。

  3. 在左侧导航栏,选择数据管理 > 跨区域复制。

  4. 在跨区域复制页面,单击跨区域复制。

  5. 在跨区域复制面板,配置以下参数,然后单击确定。

    参数

    说明

    目标Bucket

    选择英国(伦敦),然后选择destbucket。

    数据复制对象

    选择指定文件名前缀进行同步,并添加前缀destdir/和log/。

    数据复制策略

    选择增/删/改同步。

    复制历史数据

    选择复制。

    授权角色

    选择跨区域复制的授权角色。

步骤三:为srcbucket及destbucket配置事件通知

重要

因步骤二中跨区域复制规则中指定了同步历史数据,且需要同步的历史数据较多,会触发大量的消息。如果您不希望同步历史数据过程中触发消息,建议待历史数据同步完成后再开启事件通知。

  1. 登录OSS管理控制台。

  2. 单击Bucket列表,然后分别选择srcbucket和destbucket,按以下步骤配置事件通知:

    1. 在左侧导航栏,选择数据处理 > 事件通知。

    2. 在事件通知页面,单击创建规则。

    3. 在创建规则面板,按如下说明配置各项参数,然后单击确定。

      参数

      源存储空间srcbucket

      目标存储空间destbucket

      规则名称

      将事件通知规则名称设置notification1。

      将事件通知规则名称设置notification2。

      事件类型

      选择PutObject、CopyObject、DeleteObject和DeleteObjects。

      选择ObjectReplication:ObjectCreated、ObjectReplication:ObjectRemoved和ObjectReplication:ObjectModified。

      资源描述

      选择前后缀,并依次添加前缀log/以及destdir/。

      选择前后缀,并依次添加前缀log/以及destdir/。

      接收终端

      选择队列,并填写步骤一中创建的队列名称myqueue1。

      选择队列,并填写步骤一中创建的队列名称myqueue2。

以上步骤配置完成后,事件通知规则约10分钟后生效。

步骤四:接收消息

当触发了事件匹配规则时,轻量消息队列将自动创建主题(Topic),Topic名称格式为mns-en-topics-[Product]-[RuleName]-[Timestamp],例如mns-en-topics-oss-notification1-1700098799。此时,您需要为该Topic创建订阅,并在订阅规则中指定接收端地址。

  1. 登录和导航到订阅页面。

    1. 登录轻量消息队列(原 MNS)管理控制台。

    2. 在左侧导航栏,单击主题列表。

    3. 在顶部导航栏,选择华东1(杭州)地域。

    4. 在自动创建的Topic右侧的操作栏下,单击查看订阅。

  2. 创建订阅。

    1. 在目标Topic订阅页面,单击订阅管理,然后单击创建订阅。

    2. 在创建订阅页面,为源存储空间srcbucket创建订阅。订阅名称输入mysubscription1,订阅类型选择队列,接收端地址输入myqueue1,其他参数保留默认配置。

    3. 单击确定。

  3. 重复上述步骤在英国(伦敦)地域为目标存储空间destbucket创建订阅mysubscription2,推送类型选择队列,接收端地址指定为myqueue2,其他参数保留默认配置。

  4. 接收通知。

    1. 在左侧导航栏,单击队列列表。

    2. 选择目标队列myqueue1右侧操作栏下的更多 > 收发消息。

    3. 在接收消息区域,单击右上角的接收消息。

      此时,您将接收到源存储空间srcbucket内与前缀log以及destdir匹配的文件的增、删、改操作的事件通知。

    4. 重复上述步骤为目标存储空间destbucket对应的队列myqueue2配置接收通知。配置完成后,您将接收到destbucket内由于跨区域复制规则生成、覆盖或者删除文件的事件通知。

    当您不再需要接收相关事件通知时,请及时删除相应的事件通知规则。但是,事件通知规则删除后,不会同步删除自动创建的Topic。为避免产生不必要的费用,请及时删除不再使用的Topic。

相关文章

通过事件通知实时处理OSS文件变动 2025-04-21 18:16

当您需要对OSS中的文件变动进行实时处理、同步、监听、业务触发、日志记录等操作时,您可以通过设置OSS的事件通知规则,自定义关注的文件,并及时收到相关通知。 前提条件

教程示例:结合轻量消息队列实现OSS事件通知 2025-04-21 18:16

通过OSS管理控制台配置事件通知规则,自定义关注的文件(Object),当这些文件发生指定事件时,可通过消息服务接收通知。 场景描述 某

为什么删除文件没有触发事件通知? 2025-04-21 18:16

在启用版本控制的Bucket中,未指定版本ID进行DeleteObject操作会触发事件通知,但未指定版本ID进行DeleteObjects操作不会触发事件通知,因此,在进行DeleteObjects操作时,为了触发事件通知需要指定其版本ID。 问题描述 Bucket的事件通知规则

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号