S3 api策略条件,限制文件类型/扩展名

S3 api policy condition to restrict file type / extension

本文关键字:文件 类型 扩展名 api 策略 条件 S3      更新时间:2023-09-26

我在这里阅读文档,但我看不出如何添加一个条件来限制上传到一些扩展/mime类型的白名单。

ie:我想只允许人们上传扩展名为"xls", "xlsx", "ppt", "pptx", "doc", "docx", "txt", "csv"的文件

这可能吗?

PS:我使用jquery-file-upload和已经检查客户端之前,我的POST到s3,但一些浏览器不支持文件api,所以我需要仔细检查。

您可能会通过mime类型

进行验证

(这可能是无用的,因为如果没有注册mime类型,从浏览器的角度来看,它将为二进制未知类型选择默认类型)。

在文档中,它被称为:

    ["starts-with", "$Content-Type", "image/"],

我不确定是否允许集合。至少,您可以组合多个策略,每个策略对应一个允许的mime类型。

至于扩展,我猜你没有选择。

编辑:我之前写了一篇文章,概述了整个过程是如何工作的,以及如何使用它(免责声明:我为Newvem写作)

    $('#fileupload').fileupload('option', {
        maxFileSize: 25000000,
        acceptFileTypes: /('.|'/)(gif|jpe?g|png)$/i,
        process: [
            {
                action: 'load',
                fileTypes: /^image'/(gif|jpeg|png)$/,
                maxFileSize: 20000000 // 20MB
            },
            {
                action: 'save'
            }
        ]
    });

fileTypes选项似乎是你正在寻找的。更改正则表达式以过滤所需的类型。我的示例显示了这些用于图像文件。