我需要将 S3 存储桶的特定文件夹的内容复制到另一个 S3 存储桶的不同文件夹。两个 S3 存储桶位于同一区域并由同一账户拥有。
例如:假设我有一个名为“ABC-Inbound”的 S3 存储桶,其中有一个名为“from_A”的文件夹。 此外,我在同一区域中有另一个名为 workloads 的 S3 存储桶,其中有一个名为“A_data”的文件夹
是否可以编写 Cloudformation 复制规则来将 from_A 文件夹的内容复制到 A_data 文件夹?我不想复制整个文件夹,而只想复制内容。
尝试过this通过向复制配置添加过滤器,但这不起作用,因为它将整个文件夹复制到其他存储桶。
{
"Role": "IAM-role-ARN",
"Rules": [
{
"Status": "Enabled",
"Priority": 1,
"DeleteMarkerReplication": { "Status": "Disabled" },
"Filter" : { "Prefix": "from_A/"},
"Destination": {
"Bucket": "arn:aws:s3:::workloads"
}
}
]
}
最佳答案
Amazon S3 复制将在存储桶之间复制对象,您可以指定前缀以仅复制存储桶的一部分。
但是,在复制对象时,S3 Replication 不会更改对象的Key
(文件名)。 Key 包含对象的完整路径。这意味着源文件夹和目标文件夹将相同。
如果您必须复制到目标存储桶中的不同文件夹/路径,那么您需要自行管理复制,例如:
- 定期运行
aws s3sync
命令在存储桶之间复制文件,或者 - 创建一个 AWS Lambda 函数,该函数在源存储桶中创建对象时触发。编写 Lambda 函数代码以将对象复制到目标存储桶和路径。
以下是此类 Lambda 函数的示例:Copying files between S3 buckets
关于amazon-web-services - 如何将 S3 存储桶的特定文件夹的内容复制到不同 S3 存储桶的另一个特定文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76627069/