图像目标(Sink)

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

编译和部署插件

  1. # cd $eKuiper_src
  2. # go build -trimpath -modfile extensions.mod --buildmode=plugin -o plugins/sinks/Image.so extensions/sinks/image/image.go
  3. # 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小时时,删除超时的图片。

  1. {
  2. "sql": "SELECT * from demo",
  3. "actions": [
  4. {
  5. "image": {
  6. "path": "/tmp",
  7. "format": "png",
  8. "maxCount":1000,
  9. "maxage":72
  10. }
  11. }
  12. ]
  13. }

演示

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

  1. curl http://127.0.0.1:9081/streams -X POST -d '{"sql":"create stream s(image bytea)WITH(DATASOURCE = \"\",FORMAT=\"binary\", TYPE=\"zmq\");"}'
  2. curl http://127.0.0.1:9081/rules -X POST -d '{"id":"r","sql":"SELECT * FROM s","actions":[{"image":{"path":"./tmp","format":"png"}}]}'