gpt4 book ai didi

amazon-web-services - Amazon S3 条件放置对象

转载 作者:行者123 更新时间:2023-12-02 02:06:36 25 4
gpt4 key购买 nike

我有一个系统,可以在其中收到很多消息。每条消息都有一个唯一的 ID,但它也可以在其生命周期内接收更新。由于消息发送和处理之间的时间可能很长(数周),因此它们存储在 S3 中。对于每条消息,只需要最后一个版本。我的问题是,有时同一 id 的两条消息会一起到达,但它们有两个版本(旧的和新的)。

有没有办法让 S3 有一个有条件的 PutObject 请求,我可以在其中声明“除非我在 S3 中有更新版本,否则放置这个对象”?

最佳答案

I need an atomic operation here



这不是 S3 的用例,它最终是一致的。一些想法:
  • 您可以尝试对消息进行分区 - 所有以 A-L 开头的消息都转到一个框,M-Z 转到另一个框。然后每个框在本地检查是否有重复项。
  • 您最好的选择可能是某种数据库。根据您的用例,您可以使用常规 SQL 数据库,也可以使用简单的 RAM 数据库(如 Redis)。一次写入多个 Redis 数据库以避免 SPOF。
  • SWF这可以为每个项目创建一个唯一的处理队列,但这可能意味着更多的 HTTP 请求不仅仅是检查 S3。
  • David 关于开启版本控制的想法很有趣。您可以有一个守护进程定期删除旧版本。阅读时,您必须进行“阅读修复”,在其中搜索寻找最新对象的版本。
  • 关于amazon-web-services - Amazon S3 条件放置对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14747140/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com