Minio
This integration adds interaction with Minio. It also enables listening for bucket notifications: see documentation
To download or upload files, folders must be added to allowlist_external_dirs.
Configuration
To enable the Minio integration in your installation, add the following to your configuration.yaml
file:
minio:
host: localhost
port: 9000
access_key: ACCESS_KEY
secret_key: SECRET_KEY
secure: false
Automations
Automations can be triggered on new files created on the Minio server using the data_template
.
#Automatically upload new local files
automation:
- alias: "Upload camera snapshot"
trigger:
platform: event
event_type: folder_watcher
event_data:
event_type: created
action:
- delay: "00:00:01"
- service: minio.put
data:
file_path: "{{ trigger.event.data.path }}"
bucket: "camera-image-object-detection"
key: "input/{{ now().year }}/{{ (now().month | string).zfill(2) }}/{{ (now().day | string).zfill(2) }}/{{ trigger.event.data.file }}"
- delay: "00:00:01"
- service: shell_command.remove_file
data:
file: "{{ trigger.event.data.path }}"
- alias: "Download new Minio file"
trigger:
- platform: event
event_type: minio
condition: []
action:
- service: minio.get
data:
bucket: "{{trigger.event.data.bucket}}"
key: "{{trigger.event.data.key}}"
file_path: "/tmp/{{ trigger.event.data.file_name }}"
Platform Services
These services are provided:
get
put
remove
Service minio.get
Download file.
Service data attribute | Required | Description |
---|---|---|
bucket |
yes | Bucket to use |
key |
yes | Object key of the file |
file_path |
yes | File path on the local file system |
Service minio.put
Upload file.
Service data attribute | Required | Description |
---|---|---|
bucket |
yes | Bucket to use |
key |
yes | Object key of the file |
file_path |
yes | File path on the local file system |
Service minio.remove
Delete file.
Service data attribute | Required | Description |
---|---|---|
bucket |
yes | Bucket to use |
key |
yes | Object key of the file |