Amazon s3 列表对象返回控制台显示的文件;不存在
在一个特定的目录上返回一堆文件。大多数情况下,返回的文件都存在,但有时它声称存在的一些文件似乎不存在。复制这些文件会返回一个错误: NoSuchKey:指定的密钥不存在。状态代码:404,请求id:####,主机id:###Amazon s3 列表对象返回控制台显示的文件;不存在,amazon-s3,Amazon S3,在一个特定的目录上返回一堆文件。大多数情况下,返回的文件都存在,但有时它声称存在的一些文件似乎不存在。复制这些文件会返回一个错误: NoSuchKey:指定的密钥不存在。状态代码:404,请求id:####,主机id:### 在看到这个错误一段时间后,我决定打开版本控制,版本历史记录显示,其副本导致404的文件在控制台中显示为在列表和副本发布前10分钟被删除。s3是否有可能在发现文件不存在时落后10分钟?这是不寻常的,但这是可能的 AmazonS3为所有区域的覆盖放置和删除提供了最终的一致性
在看到这个错误一段时间后,我决定打开版本控制,版本历史记录显示,其副本导致404的文件在控制台中显示为在列表和副本发布前10分钟被删除。s3是否有可能在发现文件不存在时落后10分钟?这是不寻常的,但这是可能的 AmazonS3为所有区域的覆盖放置和删除提供了最终的一致性
- 进程删除现有对象并立即尝试读取它。在完全传播删除之前,AmazonS3可能会返回删除的数据
- 进程删除现有对象并立即列出其bucket中的键。在删除完全传播之前,AmazonS3可能会列出已删除的对象
这是不寻常的,但这是可能的 AmazonS3为所有区域的覆盖放置和删除提供了最终的一致性
- 进程删除现有对象并立即尝试读取它。在完全传播删除之前,AmazonS3可能会返回删除的数据
- 进程删除现有对象并立即列出其bucket中的键。在删除完全传播之前,AmazonS3可能会列出已删除的对象
“一个进程删除一个现有的对象并立即列出键…”听起来与我的情况最为接近,但我非常困惑,因为(1)这件事发生得非常突然,(2)它显示的文件在10分钟前被删除,这似乎不是“立即的”。我能要求AWS为我们的水桶做些什么来防止这种情况吗?这不是一个常见的问题。也有可能这只是一个控制台问题,对API的请求不会受到影响。AWS没有公开讨论很多“内部”问题,但很明显,控制台不是由S3提供的,而是一个单独的服务,它使用与SDK相同的API与S3进行通信(请参阅您的bucket日志以获得明确的证据),控制台可能正在进行某种“优化”这会导致列表在不应该缓存的情况下被缓存。“一个进程删除一个现有对象并立即列出键…”听起来与我的情况最为接近,但我非常困惑,因为(1)这种情况发生得非常突然,(2)它显示的文件在10分钟前被删除,这似乎不是“立即的”。我能要求AWS为我们的水桶做些什么来防止这种情况吗?这不是一个常见的问题。也有可能这只是一个控制台问题,对API的请求不会受到影响。AWS没有公开讨论很多“内部”问题,但很明显,控制台不是由S3提供的,而是一个单独的服务,它使用与SDK相同的API与S3进行通信(请参阅您的bucket日志以获得明确的证据),控制台可能正在进行某种“优化”这会导致在不应该缓存列表时缓存该列表。