【问题标题】:What happens if I delete an S3 object before replication?如果我在复制之前删除 S3 对象会怎样?
【发布时间】:2020-10-09 05:37:37
【问题描述】:

长时间聆听,第一次来电...

如果我有一个经过版本控制的 S3 存储桶(根据 documentation 进行复制)并且启用了存储桶复制;如果源存储桶对象在复制发生之前被删除,会发生什么情况?

我假设(因为源存储桶是版本化的)复制仍然会发生。复制逻辑肯定会看到一个新的对象创建事件并将其复制到目标存储桶中。因为我没有指定任何其他配置,所以随后放置在源存储桶对象上的删除标记将不会复制到目标对象上。因此,它应该在目标存储桶中正常显示,而在源存储桶中不可见。

我在文档中找不到任何具体的内容来阐明对这种情况的立场。

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    这取决于您在复制配置中选择的选项:

    • V1:删除标记已复制 - 对已删除对象的后续 GET 请求不会返回源存储桶或目标存储桶中的对象。
    • V2:删除标记复制 - 对已删除对象的后续 GET 请求仅返回目标存储桶中的对象。

    欲了解更多信息,请参阅Managing delete marker replication in Amazon S3

    【讨论】:

    • 我确实看到了这个,但我不确定它是否完全阐明了所提出的观点。稍微改一下我原来的问题,如果我的文件在复制之前被“删除”,我的文件会被复制。 A场景:假设桶A用V2复制到桶B(默认配置) 1.上传文件x到桶A 2.立即从桶A中删除x(在复制到B之前假设x很大) 文件x仍然出现在桶B?
    • 源存储桶和目标存储桶都必须启用版本控制。如果您从存储桶 A 中删除对象 x,那么只需将删除标记写入存储桶 A。使用 V2,删除标记之前的对象版本将被复制到存储桶 B,不是吗?
    • 这是我的假设,也许文档确实涵盖了这一点,但我误解了它,但这当然是我的期望。
    • 文档,任何文档,都不太可能回答您可能遇到的每一个详细问题。你可以试试这个场景看看会发生什么。如果对象 x 没有被复制到存储桶 B,我会感到惊讶,因为它与对该功能行为方式的一般描述不匹配。
    猜你喜欢
    • 2021-06-06
    • 2011-10-21
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2022-01-06
    • 2015-12-29
    相关资源
    最近更新 更多