带有对象锁定机制的AmazonS3数据一致性模型



如https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html?ConsistencyModel.html

AmazonS3不支持并发编写器的对象锁定。如果同时对同一个密钥发出两个PUT请求,则具有最新时间戳的请求获胜。如果这是一个问题,您将需要在应用程序中构建一个对象锁定机制

我们如何在Java中构建这个对象锁定机制,有没有关于如何启动的提示?。不幸的是,中的样本https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/java/example_code/s3/src/main/java/aws/example/s3

在这方面没有任何有用的例子。

感谢

~M

我会看看Terraform是如何做到这一点的,因为它们为存储在s3状态中的远程状态文件提供了s3对象锁定机制。他们使用发电机数据库。锁定/解锁机制的具体实现方式如下。

因此,基本上,要将对象放入s3,首先必须使用dybamidb锁定它。由于以下原因,此操作只能执行一次:

ConditionExpression: aws.String("attribute_not_exists(LockID)"),

一旦成功锁定对象,就可以放置新对象。然后你必须解锁它,同样如源代码所示。

最新更新