Amazon SES:在按日期命名的文件夹中将电子邮件写入 S3?

Amazon SES: write emails to S3 in folders named by date?


我的任务是设置一个管道来将传入的电子邮件(使用 Amazon SES)保存在 S3 存储桶中,按日期分类到文件夹中,例如。 "emails/2020-04-30"、"emails/2019-05-12"等
我现在想到的是首先将电子邮件存储在存储桶中,然后调用 Lambda 函数来检查该日期的文件夹是否存在,必要时创建它并将文件移动到那里。

这似乎是一种相当迂回的方式,所以我想知道是否有更有效的方式来做到这一点。

谢谢!

如果您使用 aws cli 命令将电子邮件上传到特定的 s3 存储桶,您可以使用如下命令简单地检查特定存储桶是否存在:

aws s3 ls s3://emails/2020-04-30

which returns None 如果之前没有创建它的桶。然后您可以继续创建存储桶并上传电子邮件。

编辑: 我看到你更新了你正在使用 SES 的问题。 在这种情况下,我认为以下步骤会有所帮助:

  1. 使用 SES 中的 S3 操作在 S3 中上传特定存储桶(比如 emails)中的所有电子邮件。
  2. 创建 aws - lamda 函数,它接受将文件上传到电子邮件存储桶的事件,并将该文件移动到根据该文件的创建日期命名的特定存储桶。
  3. 为调用在第二步中创建的 lambda 函数的电子邮件存储桶设置事件通知(触发器)。

希望这能回答您的问题。

作为参考,您可以查看:link to aws cli comamnd