最近更新时间:2023-01-16 14:42:06
Policy是使用 UTF-8 和 Base64 编码的 JSON 文档,它指定了请求必须满足的条件并且用于对内容进行身份验证。根据您设计Policy文档的方式,您可以对每次上传、每个用户、所有上传或根据其他能够满足您需要的设计来使用它们。
Policy文档示例
{
"expiration": "2015-01-01T12:00:00.000Z",
"conditions": [
["eq","$acl", "public-read" ],
["eq","$bucket", "mybucket" ],
["starts-with", "$key", "2015/01/"]
]
}
expiration元素采用 ISO 8601 UTC 日期格式来指定策略的过期日期,即只能在指定时间之前进行上传,在这个时间之后的上传都将被认为是非法的,KS3将返回403。注意:时区为格林时间(零时区)而非北京时间(东八区)
Policy文档中对上传内容的验证条件。您在表单中指定的每个表单字段(KSSAccessKeyId、Signature、file、policy除外)以及bucket必须包含在条件列表中。
注意:表单中的所有变量会在验证Policy之前进行扩展。因此,应该针对扩展的字段执行所有条件匹配。例如,如果您将key字段设置为 2015/01/${filename},您Policy中的condition可能是 [ “starts-with”, “$key”, “2015/01/” ]。请勿输入 [ “starts-with”, “$key”, “2015/01/${filename}” ]
元素名称 | 描述 |
---|---|
bucket | 指定bucket必须满足的条件,支持明确匹配和starts-with |
acl | 指定acl必须满足的条件,支持明确匹配和starts-with |
content-length-range | 指定上传内容(不止是文件,还有其他表单项)Content-Length的下限和上限值,支持范围匹配 |
Cache-Control, Content-Type, Content-Disposition, Content-Encoding, Expires | REST 特别头部。支持明确匹配和starts-with |
key | 上传的key,支持明确匹配和starts-with |
success_action_redirect, redirect | 成功上传之后重定向的路径。支持明确匹配和starts-with |
success_action_status | 成功上传之后返回的状态码(没有指定success_action_redirect, redirect的情况下),仅支持明确匹配 |
其他以x-kss-meta开头的表单项 | 用户元数据.支持明确匹配和starts-with |
其他KSSAccessKeyId、Signature、file、policy外的表单项 | KS3服务器不会对这些表单项做处理。但是必须在Policy文档中包含。支持明确匹配和starts-with |
匹配规则 | 示例 |
---|---|
明确匹配 | 指定acl必须等于public-read。{“acl”: “public-read” }或者[ “eq”, “$acl”, “public-read” ] |
Starts with | 指定key必须以2015/01/开头。[“starts-with”, “$key”, “2015/01/”] |
通配 | 指定success_action_redirect可以是任意值(注意:success_action_status不支持通配)。[“starts-with”, “$success_action_redirect”, “”] |
指定Content-Length范围 | 指定上传内容(不止是文件,还有其他表单项)Content-Length的范围为1048579-10485760。[“content-length-range”, 1048579, 10485760] |
下表中的字符必须在Policy文档中做转化
转义字符 | 描述 |
---|---|
\\ | 反斜杠 |
\$ | 美元符号 |
\b | 退格键 |
\f | 换页 |
\n | 新建行 |
\r | 回车 |
\t | 水平选项卡 |
\v | 垂直选项卡 |
\uxxxx | Unicode 字符 |
对于验证的 Post 请求,HTML 表单中必须包含 Policy 和 Signature 信息。
Policy 控制请求中哪些值是允许的。
计算 Signature 的具体流程为:
纯净模式
鼠标选中内容,快速反馈问题