如何通过函数调用跨帐户复制S3对象



我想创建一个函数,然后我的客户端可以调用该函数将文件从帐户a中的源S3存储桶复制到帐户B中的目标S3存储桶。

我遇到了一些建议设置IAM角色和ACL的资源,然而,我注意到这总是会自动同步两个bucket,而不是用户希望它同步的时候。

如何创建此功能,使文件仅在用户进行调用时复制,而不是在源存储桶中发生事件时自动复制?

设置IAM或ACL将不会同步S3存储桶。它们只是复制的权限。你需要建立一个机制来进行复制。如果它是一个带有S3触发器的Lambda函数,那么你所说的是真的,它会同步所有文件。

如果您需要将其手动化,您可以使用该代码(经过一些更改(来实现同样的目的。例如,您可以有一个Lambda函数,期望源和目标桶作为输入,它可以调用S3 API来进行复制。最大的问题是,如果你有很多文件要复制,它会超时。

然后,您可以将其放在一个容器中,并运行一个ECS容器来触发代码。然后你可以有一个小的Lambda函数,甚至是一个定时触发器来启动ECS实例。

如果可行的话,您也可以在本地机器上手动运行代码。

摘要
设置IAM和ACL并不意味着它将自动复制。您必须需要一个计算实例来触发实际的复制。

最新更新