问题描述
PostObject请求policy中Conditions部分存在不满足指定匹配条件的表单域。
问题原因
您发起了PostObject请求来上传文件,但是请求Post Policy中的conditions部分不存在某个匹配条件,导致请求报错。
问题示例
以下JSON中eq匹配条件的第一个参数是success_action_status,第二个参数是200,说明该匹配条件要求请求体的表单域中success_action_status字段参数值必须是200。如果请求体中名为success_action_status的表单域的值不是200,则请求错误。
{
"expiration": "2023-02-19T13:19:00.000Z",
"conditions": [
["eq", "success_action_status", "200"]
]
}
解决方案
确保满足请求中conditions指定的条件。您可以从请求返回的ErrorMessage中获知具体未满足的条件。
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>AccessDenied</Code>
<Message>
Invalid according to Policy:
Policy Condition failed:
["eq", "$success_action_status", "200"]
</Message>
<RequestId>63F1D24***4808C1F</RequestId>
<HostId>example-bucket.oss-cn-hangzhou.aliyuncs.com</HostId>
<EC>0006-00000227</EC>
</Error>
其中Message字段中包含了未满足的条件,您可以根据该信息对请求内容进行调整。
相关文档
关于Post Policy的更多信息,请参见附录:Post Policy。
关于Web端表单直传OSS的示例,请参见JavaScript客户端签名直传。
关于调用PostObject接口的常见错误及解决方法,请参见Post Object错误及排查。
文档内容是否对您有帮助?