我想向用户公开一个API(最好使用AWS API网关/ Lambda / Go)。
使用此API,用户可以从S3存储桶下载二进制文件。
我想捕获指标,例如哪个用户已开始下载文件,文件下载开始和完成的时间。
我想在DynamoDB中记录这些时间戳。
S3支持用于创建/修改/删除文件的事件,因此我可以为这些事件编写一个lambda函数。
但是S3似乎不支持读取动作(例如下载文件)
我正在考虑编写一个Lambda函数,当用户调用API来下载文件时,该函数将被调用。在lambda中,我想记录时间戳,将文件读入缓冲区,对其进行编码,然后将其作为base64编码的响应发送给客户端。
让我知道是否有更好的替代方法。
答案 0 :(得分:0)
使用Amazon S3 Server Access Logging
如果您需要查询目标存储桶设置Spectrum中的日志以查询S3中的日志,请不要使用DynamoDB
答案 1 :(得分:0)
也许您可以使用S3 Access Logs?
并基于日志存储桶中的新记录配置事件。但是,此日志不会告诉您用户是否已完成下载。