【问题标题】:Can you restrict the maximum file size which can be uploaded to a public S3 bucket?您可以限制可以上传到公共 S3 存储桶的最大文件大小吗?
【发布时间】:2015-01-23 23:55:19
【问题描述】:

我正在构建一个 Web 应用程序,它可以使用 AWS for Browsers SDK 将文件直接上传到公共 S3 存储桶。

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

【问题讨论】:

  • 你可以如下所述。问题是您设置了限制客户端。如果黑客足够热心,他们可以解码您的 base64 策略并更改大小限制并从控制台上传 5tb 文件。

标签: amazon-web-services amazon-s3 amazon-iam


【解决方案1】:

您可以通过在上传表单中使用 content-length-range 属性来限制上传对象的大小。

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

【讨论】:

【解决方案2】:

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

这是一个示例(来自 node.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 错误请求,其正文包括一条消息,指出已超过最大文件大小限制。

【讨论】:

    猜你喜欢
    • 2013-03-15
    • 2019-10-15
    • 2021-12-07
    • 2010-10-17
    • 2018-04-12
    • 2014-07-18
    • 2018-09-03
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多