我已设置 Amazon SES 以向大约 1,000 名联系人的列表发送公司公告。我将 Kenesis Firehose 设置为将所有电子邮件事件(例如,发送、退回、点击)记录到 S3 中的存储桶中。SES 似乎提供了对大量电子邮件进行批量分析的工具,但我想查看每个收件人的结果。我不知道我是否遗漏了什么,但我发现这样做的唯一方法是从 S3 下载文件并在电子表格中解析它们。我已经开发了一个非常复杂的电子表格来做到这一点。
这些文件按月、日和小时存储在 S3 中的文件夹层次结构中。S3 控制台允许我通过手动浏览文件夹树并右键单击每个文件来单独下载每个文件。S3 控制台文档说:
您可以使用 Amazon S3 控制台为每个请求下载一个对象。要下载多个对象,请使用 AWS CLI、AWS 开发工具包或 REST API。
我已经熟悉了适用于 PHP 的 AWS 开发工具包,并且正在使用它在 SES 中发送电子邮件。S3 开发人员指南包含使用 AWS SDK for PHP 获取对象的说明。它似乎没有获取多个对象的说明,我想我可以通过编写一个遍历文件夹和文件的循环来实现这一点。
我尚未安装 AWS CLI。有一个服务器故障答案似乎说可以通过 CLI 命令下载文件夹sync
。
所以现在的情况是,为了下载文件夹中的所有文件,我要么需要编写 SDK 程序,要么需要安装 CLI 并学习sync
命令。对于我可以在 Windows 中通过鼠标拖动或在 Filezilla 中通过双击鼠标执行的操作,其中任何一个似乎都需要做很多工作。我是否遗漏了什么,或者我真的需要做所有这些工作只是为了下载文件夹树中的文件?
Windows 和 Filezilla 还可以让我轻松地一次查看整个文件夹树,其中包含每个文件夹中的所有文件。S3 控制台一次只允许我查看一个子文件夹。同样,我是否需要编写 SDK 程序或学习 CLI 才能获得文件夹树的列表?
当我问这两个问题时,其他有用的方法是查看每个文件中的行数,因为每行代表一个 SES 事件。获得文件后,我将轻松地从分析中获得这些信息,但令我惊讶的是,除了进行分析之外,SES 似乎没有给我提供查看事件数量的方法。这是正确的,还是我忽略了 SES 中可以给我这些信息的东西?
最后一个问题:如果我可以简单地要求 SES 向我提供所有事件数据的转储,那么以上所有内容都是不必要的。我发现获取这些数据的唯一方法是下载那些 S3 文件,然后我必须将其合并到我的电子表格中。再说一遍,我是否忽略了 SES 中的某些东西,它允许我在不经过 S3 中的所有这些繁琐操作的情况下获取所有事件数据?
您可以简单地使用cyberduck列出和下载文件,或者使用Athena 直接从S3 分析您的数据