快速入门
盲水印(异步)服务基于云存储服务,您在使用它之前,请确保您已经注册又拍云账号并完成实名验证,请确保您已经创建云存储服务。
价格方面,它是免费的。
开发者指南
盲水印是一种无损图片美观的水印技术,旨在保护资源版权。通过嵌入肉眼不可见的水印,防止未经授权的复制和拷贝。通过特定解码操作可验证图片版权归属。
提交处理任务
对已经存在云存储中的图片文件,以 POST
方法向 http://p0.api.upyun.com/pretreatment/
提交处理任务,响应中返回任务 task_id
。任务以异步的方式处理,处理完成后,回调通知用户处理结果(回调地址不包含http则不回调)。
请求参数
参数 | 类型 | 必选 | 说明 |
---|---|---|---|
service | string | 是 | 图片文件所在的服务名 |
notify_url | string | 是 | 回调通知地址 |
tasks | string | 是 | 任务信息 |
app_name | string | 是 | 固定值,blindwatermark |
参数说明
添加盲水印任务
盲水印图片默认原文件格式,默认命名为 x.jpg
—>x_bwm.jpg
。
参数 | 类型 | 必选 | 说明 |
---|---|---|---|
bucket_name | string | 是 | 图片文件所在的空间 |
source | string | 是 | 图片文件路径,图片格式为jpg或png |
watermark | string | 是 | A-Z,a-z,0-9,限定长度20字节 |
type | string | 是 | 固定值,encode,表示添加盲水印任务 |
path | string | 否 | 图片保存路径,默认为原文件所在目录默认文件名 |
解密盲水印任务
参数 | 类型 | 必选 | 说明 |
---|---|---|---|
bucket_name | string | 是 | 图片文件所在的空间 |
source | string | 是 | 图片文件路径,图片格式为jpg或png |
type | string | 是 | 固定值,decode,表示解密盲水印任务 |
- 按 JSON 格式组装任务,一次请求
tasks
最多可以提交 10 个任务。
[
{
"bucket_name": "mypicturetest", //文件所在空间
"source": "blind/1.jpg", //文件路径
"watermark": "hellp", //水印信息
"type": "encode", //添加盲水印任务
"path": "blind/encode/1.jpg" //图片保存路径
},
{
"bucket_name": "mypicturetest", //文件所在空间
"source": "blind/encode/1_bwm.jpg", //文件所在路径
"type": "decode" //解密盲水印任务
},
…
]
- 把 JSON 字符串 Base64 编码,得到
tasks
。
W3siYnVja2V0X25hbWUiOiAibXlwaWN0dXJldGVzdCIsICJzb3VyY2UiOiAiYmxpbmQvMS5qcGciLCAid2F0ZXJtYXJrIjogImhlbGxwIiwgInR5cGUiOiAiZW5jb2RlIiwgInBhdGgiOiAiYmxpbmQvZW5jb2RlLyJ9LCB7ImJ1Y2tldF9uYW1lIjogIm15cGljdHVyZXRlc3QiLCAic291cmNlIjogImJsaW5kL2VuY29kZS8xX2J3bS5qcGciLCAidHlwZSI6ICJkZWNvZGUifV0=
示例
请求示例
curl -X POST http://p0.api.upyun.com/pretreatment/ \
-H "Authorization: UPYUN <Operator>:<Signature>" \
-H "Date: <Tue, 06 Jun 2023 09:10:46 GMT>" \
-d "service=<service>" \
-d "app_name=blindwatermark" \
-d "tasks=<base64 编码后的任务字符串>" \
-d "notify_url=<notify_url>"
响应示例
- 成功:返回
200
,响应体是一组按任务提交先后顺序排序的task_id
。例如:
[ "b5f3da18677cf055c393821eed29adc0", "69b388891c30eaa3081980475464deec", … ]
- 失败:返回相应的出错信息。
获取任务结果
通过 task_id
,以 GET
请求向 http://p0.api.upyun.com/result/
提交处理结果查询任务。
curl http://p0.api.upyun.com/result?app_name=blindwatermark&service=<service>&task_ids=<task_id1>,<task_id2>,<task_id3> \
-H "Authorization: UPYUN <Operator>:<Signature>" \
-H "Date: <Wed, 29 Oct 2014 02:26:58 GMT>"
请求参数
参数 | 类型 | 必选 | 说明 |
---|---|---|---|
service | string | 是 | 图片文件所在的服务名 |
task_ids | string | 是 | 任务集,多个 task_id 使用 , 连接,最多 20 个 task_id |
app_name | string | 是 | 固定值,blindwatermark |
响应示例
- 查询成功:返回
200
,响应体是任务的回调信息。例如:
{
"tasks": {
// encode 任务回调信息
"b5f3da18677cf055c393821eed29adc0": {
"timestamp": 1686042675, // 任务完成时间
"path": "blind/1_bwm.jpg",
"task_id": "b5f3da18677cf055c393821eed29adc0",
"status": 200, // 200 任务成功,400 无效任务,500 任务失败
"service": "mypicturetest",
"source": "blind/1.jpg"
},
// decode 任务回调信息
"69b388891c30eaa3081980475464deec": {
"timestamp": 1686042675,
"watermark": "water", // 图片解密出的盲水印信息
"task_id": "69b388891c30eaa3081980475464deec",
"status": 200,
"service": "mypicturetest",
"source": "blind/1_bwm.jpg"
}
}
}
任务回调
任务处理完成后,向 notify_url
发送 HTTP POST
请求,请求体是回调信息,如上。
请求示例
curl -X POST <notify_url> \
-H "Authorization: UPYUN <Operator>:<Signature>" \
-H "Date: <Wed, 29 Oct 2014 02:26:58 GMT>" \
-H "Content-MD5: <Content-MD5>" \
-d "service=<service>" \
# 其他参数...
如有疑问请 联系我们