捕获S3文件下载的开始和结束时间以及其他详细信息

时间:2019-01-24 13:47:45

标签: amazon-web-services go amazon-s3 lambda aws-api-gateway

我想向用户公开一个API(最好使用AWS API网关/ Lambda / Go)。

使用此API,用户可以从S3存储桶下载二进制文件。

我想捕获指标,例如哪个用户已开始下载文件,文件下载开始和完成的时间。

我想在DynamoDB中记录这些时间戳。

S3支持用于创建/修改/删除文件的事件,因此我可以为这些事件编写一个lambda函数。

但是S3似乎不支持读取动作(例如下载文件)

我正在考虑编写一个Lambda函数,当用户调用API来下载文件时,该函数将被调用。在lambda中,我想记录时间戳,将文件读入缓冲区,对其进行编码,然后将其作为base64编码的响应发送给客户端。

让我知道是否有更好的替代方法。

2 个答案:

答案 0 :(得分:0)

使用Amazon S3 Server Access Logging

如果您需要查询目标存储桶设置Spectrum中的日志以查询S3中的日志,请不要使用DynamoDB

答案 1 :(得分:0)

也许您可以使用S3 Access Logs

并基于日志存储桶中的新记录配置事件。但是,此日志不会告诉您用户是否已完成下载。