AWS S3中是否存在乐观锁定?

时间:2017-03-06 06:11:47

标签: amazon-s3 amazon-dynamodb

我在s3中有一个excel文件。由于不同的程序读写它,我需要保证每个程序都写入它们读取的版本。

2 个答案:

答案 0 :(得分:4)

S3仅保证新创建的对象的写入后一致性,以及覆盖和删除对象的最终一致性。如果excel文件足够小(小于400kb),则可以将其存储在DynamoDB项的二进制属性中,并对版本属性使用条件更新以确保文件的写入后一致性。否则,如果文件大于400kb,您可以将文件的每个版本上传到s3中的新密钥,然后在版本化的DynamoDB项目中跟踪s3 URL到文件的最新版本。

答案 1 :(得分:2)

S3无法做到这一点。

具体而言,无法确定和权威地确定您当前可见的版本是否尚未被覆盖,或者最近可能已被覆盖......因为正在进行的覆盖不会影响当前版本版本直到或稍后完成,因为覆盖的最终一致性模型。

在未启用存储桶版本控制时甚至是这样。在覆盖完成后,有时可能会覆盖一个对象并仍然会在短时间内下载以前的版本。

GETHEAD以及ListObjects最终都是一致的。