【问题标题】:AWS S3 filtered replication not triggered after tagging标记后未触发 AWS S3 过滤复制
【发布时间】:2021-05-07 20:16:51
【问题描述】:

我在 2 个存储桶之间有一个 S3 复制规则,该规则以特定标签的存在为条件 (replicate=yes)。

如果我上传带有标签的文件,它可以正常工作 - 对象立即进入 PENDING 复制状态,然后在一段时间后完成。

如果我在没有标签的情况下上传,然后稍后设置标签,则不会触发复制。对象上没有复制状态。

有可能让它工作吗?

对于一些背景:想法是让 lambda 函数标记文件准备好根据某些未来条件/外部逻辑进行复制。

如果不是标记,而是以前缀为条件进行复制,然后在 lambda 中重命名,我可以让它工作,但我的文件可能任意大(想想数百 GB),S3 重命名实际上是复制+删除,而复制如此大的文件可能会使 lambda 超时,因为执行时间限制为 15 分钟。

【问题讨论】:

    标签: amazon-web-services amazon-s3 replication


    【解决方案1】:

    恕我直言,如果没有解决方法(无论是 Lambda 还是其他东西),它本身就不可能实现。 docs 中实际上特别提到了您的用例。

    假设在复制配置中,您将规则添加到 复制具有特定标签的对象子集。在这种情况下,您 必须在创建时分配特定的标签键和值 对象供 Amazon S3 复制对象。如果您首先创建一个 对象,然后将标签添加到现有对象,Amazon S3 不会 复制对象。

    我认为这种行为是意料之中的,因为如果您将复制设置到其中已经有一些对象的存储桶,这些“旧”对象将不会被复制。默认情况下仅复制新上传的对象,如果要复制现有对象,则需要采取其他措施,例如12

    【讨论】:

    • 我认为您的链接 nr 2 中的“复制现有对象”只会在创建规则时发生一次,而不是持续发生,对吗?
    • 至于链接 1 - 复制自身是有问题的,因为文件很大并且 lambda 会超时(顺便说一句,这正是我尝试使用复制的原因)
    • 关于链接 2 的第一条评论,在他们复制整个存储桶的情况下,这也是我的理解。由于在创建复制规则时您将拥有现有对象 - 以后添加的任何内容都将被视为新对象并以任一方式复制。
    • 这在以后分配标签的情况下无济于事。看起来这里没有好的解决方法,需要重新设计原始解决方案。
    猜你喜欢
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 2020-01-04
    相关资源
    最近更新 更多