首页 > 解决方案 > 避免覆盖的 AWS S3 结帐策略

问题描述

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

标签: amazon-web-servicesamazon-s3

解决方案


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


推荐阅读