gpt4 book ai didi

python - 上市后 S3 key 不立即出现

转载 作者:行者123 更新时间:2023-11-28 22:36:29 26 4
gpt4 key购买 nike

我正在使用 Python 和 boto3 来处理 S3。

我正在列出一个 S3 存储桶并按前缀过滤:

bucket = s3.Bucket(config.S3_BUCKET)
for s3_object in bucket.objects.filter(Prefix="0000-00-00/", Delimiter="/"):

这给了我一个可迭代的 S3 对象。

如果我打印我看到的对象:

s3.ObjectSummary(bucket_name='validation', key=u'0000-00-00/1463665359.Vfc01I205aeM627249')

虽然我得到了一个异常(exception),但当我去拿尸体时:

content = s3_object.get()["Body"].read()

botocore.exceptions.ClientError: An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.

所以 boto 刚刚给了我 key ,但它说它不存在?

并非所有键都会发生这种情况。一些。如果我在 AWS 控制台中搜索无效 key ,它不会找到它。

最佳答案

假设您使用的是“标准”端点是安全的。所有这些主要适用于它,而不是区域端点。 S3 是原子的并且 eventually consistent . The documentation gives several examples ,包括:

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.

偶尔会延迟 many hours已经看到了,我的轶事同意this statement超过 99% 的数据在 2 秒内存在。

您可以通过将端点从 s3.amazonaws.com 更改为 s3-external-1.amazonaws.com< 来启用写后读一致性,从而“修复”此问题:

s3client = boto3.client('s3', endpoint_url='s3-external-1.amazonaws.com')

关于python - 上市后 S3 key 不立即出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37403643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com