Amazon web services S3存储桶中新对象put的读写一致性警告
发件人: AmazonS3在所有区域为S3存储桶中的新对象提供了读写一致性,但有一点需要注意。需要注意的是,如果您在创建对象之前对密钥名发出HEAD或GET请求(以查找对象是否存在),AmazonS3将为写后读提供最终的一致性 我不确定我是否正确理解了警告Amazon web services S3存储桶中新对象put的读写一致性警告,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,发件人: AmazonS3在所有区域为S3存储桶中的新对象提供了读写一致性,但有一点需要注意。需要注意的是,如果您在创建对象之前对密钥名发出HEAD或GET请求(以查找对象是否存在),AmazonS3将为写后读提供最终的一致性 我不确定我是否正确理解了警告在创建对象之前:好的,我还没有创建带有K键的对象,因此不存在带有K键的对象;我向K提出一个GET请求根据上面的解释,我的请求会产生什么结果 我很困惑,因为解释说明了写后读的最终一致性。但是到目前为止还没有写操作。当您有一个文件要上传,但该文件可
在创建对象之前
:好的,我还没有创建带有K键的对象,因此不存在带有K键的对象;我向K提出一个GET请求根据上面的解释,我的请求会产生什么结果
我很困惑,因为解释说明了写后读的最终一致性。但是到目前为止还没有写操作。当您有一个文件要上传,但该文件可能已经存在时,就会出现这种情况。因此,您可以执行以下操作,而不是覆盖现有文件:
在此顺序中,步骤#3可能返回文件,也可能不返回文件。最终您可以检索该文件,但从上传开始需要多长时间取决于S3的内部结构(我可以推测为什么会发生这种情况,但这只是猜测)。更新2020-12-02整个讨论现在已经过时 更新在阅读了中的一条评论后,我重写了答案 我相信这个警告是在谈论这种情况
client 1: GET key_a --> this could return an object even this request was sent earlier.
client 2: PUT key_a
如果
client 1
的请求晚于PUT
请求到达一个节点,则这是可能的。要扩展OP的评论“到目前为止还没有写入”,必须有,从某种意义上说:存在对内部缓存或索引副本的写入,以指示已请求不存在的对象,从而在S3中创建一个内部指示,将对象的存在从“对象存在未知”更改为“对象不存在已确认”,这是一个可以在内部“记住”的事实在一段时间内(通常很短,但不能保证为0),在处理对象的后续请求时使用此内部指示。感谢您的回答,但我认为您所写的内容不正确。他们说他们为新对象的put提供了读写一致性。请检查我的答案。