我从源桶中删除了文件。源和副本是同步的,都有删除标记。我删除源桶中的删除标记来恢复文件。但是文件在副本中被删除(具有删除标记)。它是故意的:
如果删除请求指定要删除的特定对象版本ID,则Amazon S3在源桶中删除该对象版本,但它不会在目标桶中复制删除(换句话说,它不会从目标桶中删除相同的对象版本)。此行为保护数据不受恶意删除。https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-what-is-isnot-replicated.html
我需要一个可靠的副本来进行故障转移。如何防止复制中的不一致?
发布于 2018-03-23 23:50:53
我看到了保存一致性的唯一方法:
永远不要删除对象版本,包括删除标记。
重新上传对象(创建新版本)以恢复对象,而不是删除删除标记。
发布于 2019-03-08 07:53:08
我理解问题,并认为它值得添加这个信息,即使在你的问题后相当一段时间。在一个源桶不可用的灾难恢复场景中,您想要从副本中恢复,仍然挂在副本中的“旧”文件(应该已经删除)是一个真正的问题。这与某个人意外地做了一个大删除的恢复场景不同(如果删除没有发生的话,那就更好了)。
目前,桶复制位于V2。您可以启用允许复制删除的V1复制。AWS似乎想通过禁用delete复制来保护我们自己,但有时它是重要的和正确的(尤其是当版本控制已经到位时)。
启用V1的相关AWS资源:
https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-replication.html
希望这能帮到别人。
https://stackoverflow.com/questions/48929578
复制相似问题