Looking at https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html,
Amazon S3 provides read-after-write consistency for PUTS of new objects in your S3 bucket in all regions with one caveat. The caveat is that if you make a HEAD or GET request to the key name (to find if the object exists) before creating the object, Amazon S3 provides eventual consistency for read-after-write.
My understanding from this is that if I create a new object and I haven't checked for its existence beforehand, it should be available immediately (e.g., show up in list requests).
But the above link also says
...you might observe the following behaviors:
- A process writes a new object to Amazon S3 and immediately lists keys within its bucket. Until the change is fully propagated, the object might not appear in the list.
which contradicts the first statement as it basically says read-after-write consistency is always eventual for PUTS.
答案 0 :(得分:2)
I read it as:
Amazon guarantees that a ReadObject request (GET and HEAD) will succeed (read-after-write consistency) for any newly PUT object, assuming you haven't requested the object before
Amazon doesn't guarantee that a ListBucket request will be immediately consistent for any newly PUT object, but rather the new object will eventually show up in a ListBucket request (eventual consistency)
答案 1 :(得分:0)
S3现在非常一致,所有S3 GET,PUT和LIST操作以及更改对象标签,ACL或元数据的操作现在都非常一致。您所写的就是您将阅读的内容,而LIST的结果将准确反映存储桶中的内容。这适用于所有现有和新的S3对象,可在所有地区使用,并且免费提供给您!对性能没有影响,可以根据需要每秒更新数百次对象,并且没有全局依赖性。
https://aws.amazon.com/blogs/aws/amazon-s3-update-strong-read-after-write-consistency/