问题描述
PostObject请求头表单中policy表单域不是合法的JSON结构。
问题原因
policy表单域的值在经过Base64解码后,不是合法的JSON结构,导致请求错误。
问题示例
无
解决方案
确保请求中的Policy表单域的值在Base64编码之前是正确的JSON结构,然后经过UTF-8和Base64编码生成policy的值。
{ "expiration": "2014-12-01T12:00:00.000Z", "conditions": [ {"bucket": "johnsmith" }, ["content-length-range", 1, 10], ["eq", "$success_action_status", "201"], ["starts-with", "$key", "user/eric/"], ["in", "$content-type", ["image/jpg", "image/png"]], ["not-in", "$cache-control", ["no-cache"]] ] }
请求中Conditions列表中如果存在content-length-range参数,则用于定义上传Object的最小和最大允许大小都必须为正整数。例如,
["content-length-range", 1, 10]
。
相关文档
关于Post Policy的更多信息,请参见附录:Post Policy。
关于Web端表单直传OSS的示例,请参见JavaScript客户端签名直传。
关于调用PostObject接口的常见错误及解决方法,请参见Post Object错误及排查。
文档内容是否对您有帮助?