我想创建一个s3触发器,当有人试图访问/下载存储在s3中的文件时调用api。
我看到一些用例s3触发器只用于创建和删除文件。但是当有人试图从s3访问文件时找不到触发器。
您可以使用cloudtrial来实现,正如使用AWS CloudTrail记录Amazon S3 API调用中所解释的那样。因此,您可以在CloudTrial中设置一个试验来监视GetObject
S3事件对象,然后您可以将其检测为AWS EventBridge中的事件。
另一种可能是通过S3 Object Lambda。
Amazon S3不提供拦截请求的能力,但是您可以通过Amazon CloudFront发送请求并使用AWS Lambda与CloudFront Lambda@Edge - AWS Lambda拦截调用并确定要做什么。Lambda@Edge函数的功能和运行时间是有限的。
或者,您可以将请求发送到您自己的API端点(例如使用API Gateway或Lambda URL)。然后,您可以编写代码来检查请求并确定要做什么。