我的问题
我有一个公共 S3 存储桶,用于存储我发送给同事和客户的大文件 (GB)。这些文件会在几周后自动删除。
这种设置的问题在于,如果有人发起 DDOS 攻击并大量下载我的某个链接,我可能会遭受巨额费用。我最终可能会支付巨额出口网络费用,我想避免这种情况。
一种解决方案是,每当有人下载对象时触发 Lambda 函数,并增加该对象的 DynamoDB 计数器。如果计数器超过合理阈值(例如,50 次下载),Lambda 函数将使文件保密,以避免进一步收费。
我的问题
如何配置当有人从特定 S3 存储桶请求文件时触发的 Lambda 函数?
答案1
答案2
而不是让它们公开任何人下载我会将它们设为私人,并且只分发预签名 URL您的同事和客户。
您可以创建一个简单的门户,您的客户登录后即可获得一个预签名的 S3 对象链接,该链接将在一小时内过期。如果他们需要再次下载,他们可以随时获得新链接。这将使您能够完全控制和审核谁可以下载您的 S3 对象,而无需承担巨额出口费用的风险。
看一下这个:https://aws.nz/best-practice/s3-presigned-url/
希望有帮助:)