表单策略定义 (HTML Form Policy)
Qiniu S3 API 服务支持以 JSON 格式定义 HTML 表单 (Form) 上传的认证策略 (Policy),认证策略中同样可以使用模板字符串 ${filename}
代表客户端最终上传文件的名称。
格式定义
{
"expiration": "2006-01-02T15:03:04.000Z",
"conditions": [
{"bucket": "s3_bucket" },
["starts-with", "$key", "uploads/avatar/"]
]
}
有效期 (expiration)
指定 HTML 表单 (Form) 策略 (Policy) 的截止有效日期时间,使用 ISO8601 日期格式。
约束条件 (conditions)
指定 HTML 表单 (Form) 上传的各种约束条件。约束规则支持两种匹配模式:
精确匹配,如 ["eq", "$bucket", "s3_bucket"] 指定上传文件的空间 (Bucket) 名称,精确匹配亦可简写成 {"bucket": "s3_bucket"};
前缀匹配,如 ["starts-with", "$key", "camera_"] 指定客户端只能上传文件名称以 camera_ 开头的对象;
字段定义
注意:策略 (Policy) 字段区分大小写
字段名称 | 描述 |
---|---|
x-amz-algorithm | 指定签名算法,AWS V4 签名为 AWS4-HMAC-SHA256 |
x-amz-credential | 指定签名认证信息, 格式为 <qiniu-access-key-id>/<date>/<region>/<service>/aws4_request |
x-amz-date | 指定客户端上传日期时间,使用 ISO8601 日期格式 |
content-type | 指定上传文件的 MIME 类型 |
success_action_redirect | 指定文件上传成功后的跳转 URL |
success_action_status | 指定文件上传成功后返回的 HTTP 状态码 |
bucket | 指定上传文件的空间名称 |
key | 指定上传文件的名称约束 (["starts-with", "$key", "camera_"]) 或文件上传后的名称 ({"key": "uploads/avatar/${filename}"}) |