AccessDenied根据策略无效:策略条件失败:[“eq”,“$success_action_redirect”;h

AccessDenied Invalid according to Policy: Policy Condition failed: ["eq", "$success_action_redirect", "http://localhost/"]

本文关键字:策略 success action redirect 失败 条件 AccessDenied 无效 eq      更新时间:2023-09-26

我试图将图像上传到AmazonS3存储桶,但收到了一个错误,比如

<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Invalid according to Policy: Policy Condition failed: ["eq", "$success_action_redirect", "LOCALHOST"]</Message>

这是我的政策:

POLICY_JSON = {'expiration': '20020-01-01T00:00:00Z',    'conditions': [    {'bucket': 'S3-bucket'},    ['starts-with', '$key', 'uploads/${filename}'],    {'acl': 'private'},    {'success_action_redirect': 'LOCALHOST'},    ['starts-with', '$Content-Type', ' '],    ['content-length-range', 0, 1048576]    ]    };

有人能帮我吗?我该如何解决这个问题?

不确定这是否相关,但我可能发现您的策略存在语法错误。我试过了http://www.jsoneditoronline.org/

在您的策略中,我必须用"替换所有的',然后我才能很好地验证它。

这是用" 替换'后的策略

{"expiration":"20020-01-01T00:00:00Z","conditions":[{"bucket":"S3-bucket"},["starts-with","$key","uploads/${filename}"],{"acl":"private"},{"success_action_redirect":"LOCALHOST"},["starts-with","$Content-Type"," "],["content-length-range",0,1048576]]}

带压痕的OR:

{
  "expiration": "20020-01-01T00:00:00Z",
  "conditions": [
    {
      "bucket": "S3-bucket"
    },
    [
      "starts-with",
      "$key",
      "uploads/${filename}"
    ],
    {
      "acl": "private"
    },
    {
      "success_action_redirect": "LOCALHOST"
    },
    [
      "starts-with",
      "$Content-Type",
      " "
    ],
    [
      "content-length-range",
      0,
      1048576
    ]
  ]
}