文件还原后,我如何解决AWS S3副本桶中的不一致



我已从源存储桶中删除了文件。源和副本已同步,都具有删除标记。我在源存储桶中删除删除标记以还原文件。但是在副本中删除了该文件( delete Marker (。它是设计:

如果删除请求指定要删除的特定对象版本ID,则Amazon S3在源存储桶中删除该对象版本,但它不会在目标存储桶中复制删除(换句话说,它不会删除同一对象来自目标存储桶的版本(。此行为保护数据免受恶意缺失。 https://docs.aws.amazon.com/amazons3/latest/dev/crr-what-what-is-isnot-replicated.html

我需要一个一致的副本才能进行故障转移。如何防止复制中的不一致?

我看到了保存一致性的唯一方法:

永远不要删除对象版本,包括删除标记

重新上传对象(创建一个新版本(以还原它,而是删除删除标记

我理解问题,并认为即使在您的问题之后很长时间,也值得添加此信息。在灾难恢复的情况下,源存储库不可用,并且要从副本中还原,但仍在副本中挂着的"旧"文件(应该已删除(是一个真正的问题。这与有人偶然地进行了大删除的恢复方案不同(如果删除没有发生,那将是很好的(。

当前,存储桶复制为V2。您 can 启用V1复制,这确实允许复制删除。似乎AWS希望通过禁用删除复制来保护我们免受自己的侵害,但有时候它是重要和正确的(ESP当版本控制到位时(。

相关的AWS资源启用V1:

https://docs.aws.amazon.com/amazons3/latest/dev/crr-add-config.html#crr-backward-compat-comsissisessions

https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-replication.html

希望对某人有帮助。

最新更新