---
title: Minio
description: Integration for interacting with Minio object storage.
ha_category: Utility
ha_iot_class: Cloud Push
ha_release: 0.98
ha_codeowners:
  - '@tkislan'
ha_domain: minio
---

This integration adds interaction with [Minio](https://min.io).
It also enables listening for bucket notifications: [see documentation](https://docs.min.io/docs/minio-client-complete-guide.html#watch)

To download or upload files, folders must be added to [allowlist_external_dirs](/docs/configuration/basic/).

## Configuration

To enable the Minio integration in your installation, add the following to your `configuration.yaml` file:

```yaml
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 %}
```yaml
#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_template:
        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_template:
        file: "{{ trigger.event.data.path }}"

- alias: Download new Minio file
  trigger:
  - platform: event
    event_type: minio

  condition: []
  action:
  - service: minio.get
    data_template:
      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                            |
