更新时间:2020-10-09 13:48:59
上传凭证请放入到请求的表单中,参数名:token 。
上传凭证构建的三个基础数据源:
上传凭证uploadToken是基于三个基础数据源上复杂签名计算的结果。通过对上传凭证验证,可以确保非法上传请求被阻止,防止入侵行为。
{
"scope": "<bucket string>",
"deadline": "<deadline string>",
"saveKey": "<saveKey string>"
"returnUrl": "<returnUrl string>",
"returnBody": "<returnBody string>",
"overwrite": "<overwrite int>",
"fsizeLimit": "<fsizeLimit long>",
"callbackUrl": "<callbackUrl string>",
"callbackBody": "<callbackBody string>",
"persistentOps": "<persistentOps string>",
"persistentNotifyUrl": "<persistentNotifyUrl string>"
"contentDetect": "<contentDetctstring>"
"detectNotifyURL": "<detectNotifyURL string>"
"detectNotifyRule":"<detectNotifyRule>"
"separate": "<separate int>"
}
字段名 | 必填 | 描述 |
---|---|---|
scope | 是 | 指定上传的目标空间 |
deadline | 是 | 上传请求授权的截止时间;UNIX时间戳,单位:毫秒。范例:1398916800000,代表时间2014-05-01 12:00:00。 |
saveKey | 否 | 返回数据说明 > 自定义资源名。该字段仅支持普通上传方式。 |
fsizeLimit | 否 | 限定上传文件的大小,单位:字节(Byte)。超过限制大小的文件上传失败,返回401状态码。注:设置为0时,无限制。 |
overwrite | 否 | 指定是否覆盖服务器上已经存在的文件:0-不覆盖,1-覆盖。默认为0 。 |
returnUrl | 否 | Web端文件上传后,浏览器会执行303跳转的URL,通常用于HTML Form上传。如果文件上传成功,则重定向到&message= |
returnBody | 否 | 上传成功后,自定义最终返回給上传端的数据。如果您只需要返回文件名和文件地址,只需将returnBody设置成fname=$(fname)&url=$(url)即可。详细用法参见返回数据说明。 |
callbackUrl | 否 | 上传成功后,云存储以POST方式请求该地址。(要求:必须是公网URL地址,能正常响应HTTP/1.1 200 OK,若有空格等特殊字符,需要进行Url Encode编码)该地址响应数据格式为JSON文本。 |
callbackBody | 否 | 上传成功后,网宿云POST方式提交到callbackUrl的数据。callbackBody 要求是合法的url query string,如:key=$(key)&fsize=$(fsize)。详细用法参见返回数据说明 > 回调方式数据说明。 |
persistentNotifyUrl | 否 | 接收预处理结果通知的地址,要求必须是公网URL地址,能正常响应HTTP/1.1 200 OK,若有空格等特殊字符,需要进行Url Encode编码。通知内容参见通知数据内容说明。 |
persistentOps | 否 | 文件上传成功后,预处理指令列表。每个指令是一个API规格字符串,多个指令用;分隔。请参见返回数据说明 > 指令说明。 |
contentDetect | 否 | 文件上传成功后,进行内容鉴定操作。支持参数:imagePorn-图片鉴黄, imageTerror-图片鉴恐, imagePolitical-政治人物识别。 |
detectNotifyURL | 否 | 接收鉴定结果的通知地址,要求必须是公网URL地址,能正常响应HTTP/1.1 200 OK,若有空格等特殊字符,需要进行Url Encode编码。通知内容参见鉴定通知数据内容说明。 |
detectNotifyRule | 否 | 鉴定结果通知规则设置。all 全部通知;porn 通知色情图片;sexy 通知性感图片;normal 通知正常图片;exception 通知鉴定异常的图片;terror 通知暴恐图片(鉴定类型为imageTerror时才生效);political 通知识别为政治人物的图片(鉴定类型为imagePolitical时才生效);参数支持相互组合,以分号间隔。例如:参数设置为porn;exception即通知鉴定结果为色情或者鉴定异常的图片。 |
separate | 否 | 转码是否分开通知。设置1和0作为选项码:1:表示每个转码指令执行完后都通知persistentNotifyUrl。0:表示所有转码指令执行完后再一次性通知persistentNotifyUrl。默认值为0。 |
注:
- 请在设置persistenOps字段时,完成persistentNotifyUrl字段设置,平台会通过调用persistentNotifyUrl字段设置的URL,来通知您指令处理的结果,详见通知数据内容说明。
- 采用上传处理机制,设置persistenOps字段时,指令参数saveas为必填,且文件名不能与原文件同名,否则返回401,提示信息“The Persistent File Already Exists”。
- 文件命名优先级为:Scope的key > saveKey > 表单key >原文件名。
使用json格式封装上传文件的一些信息putPolicy。
{
"scope": "<bucket string>",
"deadline": "<deadline string>",
"returnBody": "<returnBody string>",
"overwrite": "<overwrite int>",
"fsizeLimit": "<fsizeLimit long>",
"returnUrl": "<returnUrl string>"
}
对putPolicy进行URL安全的Base64编码,得到encodePutPolicy。
encodePutPolicy = urlsafe_base64_encode(putPolicy)
使用SecretKey对encodePutPolicy进行HMAC-SHA1签名,得到Sign。
Sign = hmac_sha1(encodePutPolicy, "<SecretKey>")
注:不同语言的HMAC-SHA1方法有差异,可参考各语言SDK中的实现
外部资源:HMAC-SHA1签名
示例代码:HMAC-SHA1签名
对签名数据Sign进行URL安全的Base64编码,得到encodedSign。
encodeSign = urlsafe_base64_encode(Sign)
将AccessKey、encodedSign和encodeputPolicy用:连接起来,得到上传凭证uploadToken。
uploadToken = AccessKey:encodedSign:encodePutPolicy