通过 AWS S3 获取 Amazon SES 数据:有没有一种简单的方法来列出和下载文件夹并获取行数?

通过 AWS S3 获取 Amazon SES 数据:有没有一种简单的方法来列出和下载文件夹并获取行数?

我已经设置了 Amazon SES,用于向大约 1,000 个联系人列表发送公司公告。我设置了 Kenesis Firehose,用于将所有电子邮件事件(例如,发送、退回、点击)记录到 S3 中的存储桶中。SES 似乎提供了用于批量分析大量电子邮件的工具,但我想查看每个收件人的结果。我不知道我是否错过了什么,但我发现这样做的唯一方法是从 S3 下载文件并在电子表格中解析它们。我开发了一个相当复杂的电子表格来做到这一点。

文件按月、日、小时的层次结构存储在 S3 中。S3 控制台允许我通过手动浏览文件夹树并右键单击每个文件来单独下载每个文件。S3控制台文档说

您可以使用 Amazon S3 控制台按请求下载单个对象。下载多个对象,使用 AWS CLI、AWS SDK 或 REST API。

我已经熟悉了 AWS SDK for PHP,并使用它发送电子邮件。 S3 开发人员指南中有说明使用适用于 PHP 的 AWS 开发工具包获取对象。它似乎没有获取多个对象的说明,我想我可以通过编写遍历文件夹和文件的循环来实现这一点。

我尚未安装 AWS CLI。有一个服务器故障答案这似乎表明可以通过 CLI 命令下载文件夹sync

因此,目前的情况是,为了下载文件夹中的所有文件,我要么需要编写 SDK 程序,要么安装 CLI 并学习命令sync。这两种方式似乎都需要做很多工作,而我可以在 Windows 中用鼠标拖动或在 Filezilla 中用鼠标双击来完成这些工作。我是不是漏掉了什么,或者我是否真的需要做所有这些工作才能下载文件夹树中的文件?

Windows 和 Filezilla 也允许我一次轻松查看整个文件夹树,其中包含每个文件夹中的所有文件。S3 控制台只允许我一次查看一个子文件夹。同样,我是否需要编写 SDK 程序或学习 CLI 才能获得文件夹树的列表?

当我问这两个问题时,另一个有用的方法是查看每个文件中的行数,因为每行代表一个 SES 事件。获得文件后,我可以从分析中轻松获得这些信息,但令我惊讶的是,除了进行分析之外,SES 似乎没有给我提供查看事件数量的方法。这是正确的吗?或者我是否忽略了 SES 中可以提供该信息的内容?

最后一个问题:如果我可以简单地要求 SES 将所有事件数据转储给我,那么上述所有操作都是不必要的。我发现获取这些数据的唯一方法是下载这些 S3 文件,然后我必须将它们合并到我的电子表格中。所以再说一遍,我是否忽略了 SES 中的某些内容,而这些内容可以让我获取所有事件数据,而不需要经过 S3 中的所有这些繁琐程序?

答案1

你可以简单地使用网络鸭列出并下载文件,或者使用 Athena 直接从 S3 分析数据

相关内容