如何限制AWS S3预签名PUT上传的文件大小?

Leo*_*ice 5 amazon-s3 amazon-web-services aws-lambda

您好,我正在开发一个应用程序,用户可以在其中上传自己的视频(是的,例如 Tiktok)。我选择使用 PUT 路由进行预先签名的直接上传,以最大限度地提高上传速度。

我的问题是如何真正限制用户可以上传视频的文件大小?

我提出的一个解决方案是使用 lambda 来检查上传对象的内容长度。但据我所知,内容长度属性是在客户端的标头中设置的。如果标头中的内容长度与上传到 s3 的实际文件大小不匹配怎么办?有人可以通过 PUT 上传来做到这一点吗?

len*_*310 2

我提出的一个解决方案是使用 lambda 来检查上传对象的内容长度。

另一种选择是set content-length-range matching POST policy.

如果 header 中的内容长度和上传到 s3 的实际文件大小不匹配怎么办

不确定为什么会发生这种情况,但除了使用内容长度属性之外,分段上传也值得考虑。这只是一系列常规请求。您启动分段上传,发送一个或多个分段上传请求,然后完成分段上传过程。您单独签署每个请求。

一个支持 S3-streaming-upload 的 Node.js 插件