我正在编写一个将在 AWS 上运行的应用程序。它包含用户上传的图像和视频,我想将这些数据存储在 S3 中。我想知道如何防止一个用户上传千兆字节的数据,因为我会为此付费。我可以:
但如果有人愿意,他可以创建几个帐户,然后用垃圾填满我的存储空间。我还可以在每次上传之前检查我的存储桶大小,并且仅在我的存储桶容量 < 50GB 时才上传。但是这些计算对于一些简单的上传来说是非常昂贵的。
我是否应该更改为可以设置限制的其他存储服务?
还是有解决我问题的通用方法?
还是我应该只信任我的用户?
最佳答案
在不详细了解您的用例的情况下,很难推荐解决方案。没有一个解决方案,而是解决方案的组合:
PutObject
.它的工作方式是 PutObject
在您的存储桶中将触发一个 lambda 函数,该函数接收有关对象的一些信息,包括大小和 IP 地址。您可以编写一些简单的 Python/node.js/Java 应用程序来跟踪和存储一些数据库中的大小和 IP(微 Redis
或 DynamoDB
)。如果您看到来自特定 IP 的上传过多或大量上传,请生成 IAM
动态阻止该 IP 的策略,将其附加到您的存储桶并发送 SES
给你发电子邮件。 BucketSize
则发送警报或 ObjectCount
超出限制 关于amazon-web-services - 如何在 S3 中限制用户上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35887713/