Skip to content

图像目标(Sink)

目标(Sink)用于将图片保存到指定文件夹中。

编译和部署插件

shell
# cd $eKuiper_src
# go build -trimpath --buildmode=plugin -o plugins/sinks/Image.so extensions/sinks/image/image.go
# cp plugins/sinks/Image.so $eKuiper_install/plugins/sinks

重新启动 eKuiper 服务器以激活插件。

属性

属性名称是否可选说明
path保存图片的文件夹名,例如 ./tmp。注意:多条 rule 路径不能重复,否则会出现彼此删除的现象。
format文件格式,支持 jpeg 和 png。
maxAge最长文件存储时间(小时)。默认值为72,这表示图片最多保存3天。
maxCount存储图片的最大数量,默认值是1000,删除时间较早的图片,与 maxAge 是或的关系。

使用示例

下面示例演示接收图片并将图片保存到文件夹 /tmp 中,当图片数量超过1000张时,删除时间较早的图片;图片保存时长超过 72 小时后,将删除超时的图片。

json
{
  "sql": "SELECT * from demo",
  "actions": [
    {
      "image": {
        "path": "/tmp",
        "format": "png",
        "maxCount":1000,
        "maxage":72
      }
    }
  ]
}

演示

下面以 zmq 插件为 sourceimage 插件为 sink,将 zmq 接受到的图片保存在 image 指定的文件夹中。

shell
curl http://127.0.0.1:9081/streams -X POST -d '{"sql":"create stream s(image bytea)WITH(DATASOURCE = \"\",FORMAT=\"binary\", TYPE=\"zmq\");"}'

curl http://127.0.0.1:9081/rules -X POST -d '{"id":"r","sql":"SELECT * FROM s","actions":[{"image":{"path":"./tmp","format":"png"}}]}'