需要关于如何在 S3 上查找现有对象的建议。

需要关于如何在 S3 上查找现有对象的建议。

【以下的问题经过翻译处理】 您好,我们每天都有来自外部的文件,并将它们上传到S3。这些文件可能是之前某一天的复制品,因此我们需要在上传之前检查它们是否已经存在。 我们旧的方法是在上传新文件后将文件名保存到 SDB 中,因此我们可以使用 SDB 查询查找现有文件。 最近,我们想改用 S3 HEAD Object API 来检查文件的存在性。 我们需要建议: (1)除了 SDB 和 S3 HEAD API 以外,是否有更好的方法?有没有批量检查存在性的新的 S3 API? (3)对于我们的用例,S3 HEAD API 是否足够好(我们需要在每小时的白天查找约200个文件名)? 提前感谢!
需要关于如何在 S3 上查找现有对象的建议。 2024-03-30 08:02:06
需要关于如何在 S3 上查找现有对象的建议。 0
需要关于如何在 S3 上查找现有对象的建议。
【以下的回答经过翻译处理】 你好, 虽然我使用S3非常多,但我并不是亚马逊的员工,所以请自行判断。 每小时的 HEAD 请求量完全没有问题,应该不会严重影响服务。 检查随机键是否存在并没有更好的办法。但是,如果你一次有很多个键,并且这些键共享路径结构,你可以执行一次关于共同前缀的列表请求并检查内容,效率会更高。 请记住,S3 可能不是立即一致的。要完全理解对你的特定用例的影响,请阅读文档,但有几个问题需要注意: 1.如果在上传之前执行 GET / HEAD,然后 PUT,然后再执行 GET / HEAD-该响应最终将不保证返回对象存在。 2.LIST 请求最终一致。 考虑到这些和你对要检查的对象数量的期望值,我建议保持简单,并只执行HEAD-可能需要一些基于时间的重试以解决最终一致性问题。如果做出错误决策,可以重新上传一个重复的对象,这并不会造成数据丢失,只会增加你的成本,所以如果偶尔发生这种情况,不会太大的影响。 希望这能帮到你!