首页 > 解决方案 > 在预签名 URL 到期时触发事件

问题描述

以下是对象创建的事件通知示例:

s3EventObjectCreated:
    handler: src/handlers/postProcess
    events:
      - s3:
          bucket: 'bucketName'
          event: s3:ObjectCreated:*
          rules:
            - prefix: 'files/'
          existing: true

如何在预签名 URL 到期时创建事件通知?

因此,如果预签名 URL 过期,它应该触发一个事件并调用我的 lambda 函数。

标签: amazon-web-servicesamazon-s3

解决方案


预签名 URL 在客户端生成,不涉及 Amazon S3。生成预签名 URL 时,提供的凭据用于创建在一定时间内有效的签名。此签名可用于稍后发出请求。在发出实际请求时,AWS 会检查签名是否是使用授权凭证进行的,以及它是否仍然有效。

因为签名是在客户端生成的,所以一旦它们过期,您就不能让 AWS 触发任何事情。

要在预签名 URL 过期时触发操作,您需要一些额外的逻辑。例如,您可以确保在 DynamoDB 中为每个预签名 URL 存储一个项目,并使用DynamoDB 的 TTL 功能触发 Lambda 函数,该函数基于从 DynamoDB 中删除项目引起的 DynamoDB 流事件过期。


推荐阅读