我们如何在 Tigris 中构建对象通知 | Tigris 对象存储

主要观点:

  • Tigris 现在支持对象通知,可在桶中每次有东西变化时接收事件,类似 Linux 的 inotify 子系统,有助于跟踪应用中的情况。
  • 以自动图像处理为例,用户上传新图片后可自动生成缩略图等操作,通过对象通知实现。
  • 介绍了构建对象通知的幕后工作,包括全球对象存储的复制机制以保持同步,以及对象通知中心、后台任务等。
  • 解释了不能保证事件有序的原因。

关键信息:

  • 有一张南非 Magoebaskloof dusty 道路上的秋景图,摄影师 Garren Smith,iPhone 13 Pro 拍摄。
  • 对象通知可用于自动处理图片等操作,如用户上传图片后自动生成缩略图和检测不当内容。
  • 复制用于确保多个区域的对象同步,背景任务会检查索引并发送变化到 webhook,若请求失败会重试。
  • 由于对象变化复制时间不同,无法保证事件有序,只能按已复制到区域的最新变化发送。

重要细节:

  • 构建对象通知时,为桶指定一个区域作为对象通知中心,创建特殊索引按 Versionstamp 和对象元数据的 Last Modified 时间排序。
  • 后台任务会定期检查索引收集最新变化并发送到 webhook,还会跟踪已处理的变化并删除已处理的旧变化。
  • 若不指定对象通知中心,可能导致多个区域发送相同事件或需构建复杂系统协调避免重复事件。
阅读 13
0 条评论