# 图像目标(Sink)

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

# 编译和部署插件

# cd $eKuiper_src
# go build -trimpath -modfile extensions.mod --buildmode=plugin -o plugins/sinks/Image.so extensions/sinks/image/image.go
# cp plugins/sinks/Image.so $eKuiper_install/plugins/sinks
1
2
3

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

# 属性

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

# 使用示例

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

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

# 演示

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

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"}}]}'
1
2
3