避免覆盖的 AWS S3 Checkout 策略

时间:2021-06-14 19:43:56

标签: amazon-web-services amazon-s3

我正在尝试利用存储在 S3 中的集合来维护 ID 列表。但是,我有一个小问题。每当创建新帖子时,都应该通过 lambda 函数使用新 ID 更新该集合,但我担心如果同时发布两个帖子会被覆盖。这将导致从 S3 中拉出该集合的 2 个单独实例,并且其中一个用户将覆盖另一个用户的数据,并且其中一个 ID 将“丢失”。有没有办法实现某种队列,以便只有在 lambda 函数已经更新了上一次拉取的对象后才会拉取该对象?

1 个答案:

答案 0 :(得分:1)

我自己还没有实现它,但为什么不尝试为您的 S3 存储桶打开版本控制。那么您不能意外覆盖,因为每次将某些内容写入文件时,它总会有一个版本。您只需要增强您的 Lambda 代码即可使用所写入文件对象的文件版本。如果您有权访问 DynanoDb,那么您可能宁愿使用它来为您的 ID 执行“条件更新”。这样您就有了一个轻量级的机制来保证您不会在不知道的情况下覆盖它。