4.3 KiB
title | description | ha_category | ha_iot_class | ha_release | ha_codeowners | ha_domain | ha_integration_type | ||
---|---|---|---|---|---|---|---|---|---|
Minio | Integration for interacting with Minio object storage. |
|
Cloud Push | 0.98 |
|
minio | integration |
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
{% configuration %} host: description: Minio server host required: true type: string port: description: Minio server port required: true type: integer access_key: description: Minio server access key required: true type: string secret_key: description: Minio server secret key required: true type: string secure: description: Whether to use HTTP or HTTPS connection required: true type: boolean default: false listen: description: List of configurations to listen for events to required: false default: [] type: list keys: bucket: description: Bucket to use required: true type: string prefix: description: What prefix to use to filter file events required: false type: string default: "" suffix: description: What file suffix to use to filter file events required: false type: string default: "." events: description: What file required: false type: string default: "s3:ObjectCreated:" {% endconfiguration %}
Automations
Automations can be triggered on new files created on the Minio server using the data_template
.
{% raw %}
#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 }}"
{% endraw %}
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 |