您能否限制可以上传到公有 S3 存储桶的最大文件大小



我正在构建一个 Web 应用程序,该应用程序可以使用适用于浏览器的 AWS 开发工具包将文件直接上传到公有 S3 存储桶。

我想限制可以上传的最大文件大小,虽然我可以对文件大小进行客户端验证,但纯客户端解决方案不是很健壮,我也想添加一个服务器端验证。是否可以使用 IAM 角色执行"S3:PutObject"操作?

您可以在设置签名上传 URK 以将浏览器直接上传到 S3 时创建的 s3Policy 中设置最小和最大文件大小。

下面是一个示例(来自节点.js应用程序的JavaScript) - 请参阅底部的"内容长度范围"部分:

var s3Policy = {
        'expiration': expiration,
        'conditions': [{
                'bucket': aws.bucket
            },
            ['starts-with', '$key', path], 
            {
                'acl': readType
            },
            {
              'success_action_status': '201'
            },
            ['starts-with', '$Content-Type', request.type],
            ['content-length-range', 2048, 124857600], //min and max
        ]
    };

如果用户上传的文件超过 S3,则会返回一个 400 错误请求,其正文包含一条消息,指出已超出最大文件大小限制。

您可以使用上传表单中的内容-长度-范围属性来限制上传的对象大小。

这是相关的文档页面: http://doc.s3.amazonaws.com/proposals/post.html#Limiting_Uploaded_Content

相关内容

  • 没有找到相关文章

最新更新