Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 标记后未触发AWS S3筛选复制_Amazon Web Services_Amazon S3_Replication - Fatal编程技术网

Amazon web services 标记后未触发AWS S3筛选复制

Amazon web services 标记后未触发AWS S3筛选复制,amazon-web-services,amazon-s3,replication,Amazon Web Services,Amazon S3,Replication,我在两个bucket之间有一个S3复制规则,它取决于特定标记的存在(replicate=yes) 若我上传了一个带有标签的文件,那个么它工作正常——对象立即进入挂起复制状态,然后在一段时间后完成 如果我上载时没有标记,然后稍后设置标记,则不会触发复制。对象上没有复制状态 有可能使它工作吗 对于某些背景:我们的想法是让lambda函数标记文件准备好根据未来的条件/外部逻辑进行复制 如果我不使用标签,而是将复制设置为以前缀为条件,然后在lambda中重命名,那么我的文件可以任意大(想想数百GB),S

我在两个bucket之间有一个S3复制规则,它取决于特定标记的存在(replicate=yes)

若我上传了一个带有标签的文件,那个么它工作正常——对象立即进入挂起复制状态,然后在一段时间后完成

如果我上载时没有标记,然后稍后设置标记,则不会触发复制。对象上没有复制状态

有可能使它工作吗

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


如果我不使用标签,而是将复制设置为以前缀为条件,然后在lambda中重命名,那么我的文件可以任意大(想想数百GB),S3重命名实际上是一个复制+删除,而这样大的文件的副本可能会使lambda超时,因为执行时间限制为15分钟。

IMHO,如果没有解决方案(无论是Lambda还是其他什么),它在本地是不可能实现的。 您的用例实际上在中特别提到

假设在复制配置中,您向 复制具有特定标记的对象子集。在这种情况下,你 必须在创建标记时指定特定的标记键和值 对象,以便AmazonS3复制该对象。如果您首先创建一个 对象,然后将标记添加到现有对象中,AmazonS3不这样做 复制对象


我认为这种行为是可以预期的,因为如果您将复制设置到一个已经包含一些对象的bucket,那么这些“旧”对象将不会被复制。默认情况下,只复制新上载的对象,如果您想复制现有对象,则需要采取其他措施,如和。

我认为,从链接nr 2“复制现有对象”只会在规则创建时发生一次,而不会持续发生,正确吗?对于链接1,复制本身是有问题的,因为文件很大,lambda会在关于链接2的第一条评论中超时(顺便说一句,这正是我尝试使用复制的原因),在他们复制整个bucket的情况下,这也是我的理解。由于在创建复制规则时您将拥有现有对象,因此以后添加的任何内容都将被视为新对象并以任何方式进行复制。这在以后分配标记的情况下都没有帮助。看起来这里没有好的解决方法,需要重新设计原始解决方案。