有没有办法在S3策略中指定不能成为空字符串?

时间:2017-11-09 20:31:03

标签: amazon-web-services amazon-s3

我的政策如下:

    ["starts-with", "$x-amz-meta-tag", ""]

根据docs

  

要配置POST策略以允许表单字段中的任何内容,请使用带空值的starts-with("")。此示例允许success_action_redirect的任何值:
  ["starts-with", "$success_action_redirect", ""]

问题是你可以发送一个空字符串,这将通过。
有没有办法配置策略,使其必须是x长度或至少不是空字符串?

1 个答案:

答案 0 :(得分:0)

没有,但是......

您拥有的选项是在您的应用程序中强制执行验证,将表单中的值设置为hidden字段,然后在您的策略中包含["eq", "$x-amz-meta-tag", "the same string you embedded in the form"]条件。由于签名的策略实际上包含所需的值,因此用户无法修改该值并在没有发生策略违规的情况下提交表单,从而拒绝上载。