# Image Sink Sink is used to save the picture to the specified folder. ## Compile and deploy the plugin ```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 ``` Restart the eKuiper server to activate the plugin. ## Attribute | Attribute name | Optional | Description | |----------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | path | False | The name of the folder where the pictures are saved, such as `./tmp`. Note: For multiple rules, their paths cannot be repeated, otherwise they will be deleted from each other. | | format | False | File format, support jpeg and png. | | maxAge | True | Maximum file storage time (hours). The default value is 72, which means that the picture can be stored for up to 3 days. | | maxCount | True | The maximum number of stored pictures. The default value is 1000. The earlier pictures will be deleted. The relationship with `maxAge` is OR. | Other common sink properties are supported. Please refer to the [sink common properties](../overview.md#common-properties) for more information. ## Usage example The following example demonstrates how to receive pictures and save them to the folder `/tmp`. When the number of pictures exceeds 1000, the earlier pictures will be deleted. When the pictures are saved for more than 72 hours, the timeout pictures will be deleted. ```json { "sql": "SELECT * from demo", "actions": [ { "image": { "path": "/tmp", "format": "png", "maxCount":1000, "maxage":72 } } ] } ``` ## Demo In the following example, we take the `zmq` plugin as `source` and the `image` plugin as `sink`, and save the pictures received by `zmq` in the folder specified by `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"}}]}' ```