【发布时间】:2017-10-22 00:57:52
【问题描述】:
我有一个使用适用于 S3 的 JS SDK 的 React-Native 应用程序,并且我有一个 IAM 策略,该策略允许用户对特定文件执行 PutObject,其名称与登录用户的 Cognito ID 相关。这允许用户更改他/她的个人资料图片,而无需运行任何服务器代码,我也不必在 AWS 内进行不必要的数据传输。
这很好用,因为胭脂/修改过的客户端可以上传大量文件并为我产生成本。
我想知道是否有办法限制 PutObject 访问仅允许特定大小以下的文件?
【问题讨论】:
-
我几乎肯定 s3 sdk 中没有任何部分可以让您限制通过 putObject 上传的内容的大小。也许您可以考虑在执行上传操作之前利用其他一些检查
-
@Maxwelll 从技术上讲,我不想使用 SDK 来强制执行此操作,我想使用 IAM 策略。我只是提到我对 S3 的访问是通过 SDK 而不是其他方式。
-
超级破解,S3 对象创建事件触发 Lambda 函数。在事件数据中,Records[0].s3.object.size 自动包含上传对象的大小。如果过多...删除它。或者尝试调整它的大小。或者用脾气暴躁的猫代替它。说真的,您可能需要考虑对个人资料照片进行某种后处理 Lambda 触发器,无论如何……毕竟,您不想在其个人资料照片的 EXIF 元数据中公开用户的家庭或工作地点。 ..
-
@Michael 这就是我猜想如果没有优雅出现我需要做的事情。我可以在应用程序中删除 EXIF,然后只有不使用该应用程序访问我的服务的人才会受到损害(一件好事......)
-
哈!听起来你在上面。或者通过 API Gateway 进行上传,因为它的内部负载限制似乎只有 10 MB。
标签: amazon-web-services amazon-s3 amazon-iam