1. 首页
  2. 云处理
  3. 盲水印(异步)

盲水印(异步)

快速入门

盲水印(异步)服务基于云存储服务,您在使用它之前,请确保您已经注册又拍云账号并完成实名验证,请确保您已经创建云存储服务

价格方面,它是免费的。

开发者指南

盲水印是一种无损图片美观的水印技术,旨在保护资源版权。通过嵌入肉眼不可见的水印,防止未经授权的复制和拷贝。通过特定解码操作可验证图片版权归属。

提交处理任务

对已经存在云存储中的图片文件,以 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,表示解密盲水印任务
  1. 按 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"                       //解密盲水印任务
    },
    …
]
  1. 把 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>" \
# 其他参数...

如有疑问请 联系我们

这篇文章有帮助吗?

相关文章