文件还原后,如何解决AWS S3副本存储桶中的不一致问题?

问题描述 投票:1回答:2

我从源存储桶中删除了文件。源和副本是同步的,都有删除标记。我删除源存储桶中的删除标记以恢复文件。但是文件在副本中被删除(有删除标记)。它是按设计:

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

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

amazon-s3 replication failover
2个回答
0
投票

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

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

重新上载对象(创建新版本)以恢复它,而不是删除删除标记。


0
投票

我理解这个问题并认为值得添加这些信息,即使你的问题已经有一段时间了。在源存储桶不可用且您想要从副本还原的灾难恢复方案中,仍然在副本中闲置的“旧”文件(应该已删除)是一个真正的问题。这与恢复方案的不同之处在于,有人已经意外地进行了大量删除(如果删除没有发生,那将会很好)。

目前桶复制处于V2。您可以启用V1复制,它允许复制删除。似乎AWS希望通过禁用删除复制来保护我们自己,但有时它是重要且正确的(特别是当版本控制到位时)。

用于启用V1的相关AWS资源:

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

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

希望能帮助别人。

© www.soinside.com 2019 - 2024. All rights reserved.