This implementation is similar to AMQP notifications:
* Notifications are published on a single topic as a JSON feed
* Topic is configurable, as is the QoS. Uses the paho.mqtt.golang
library for the mqtt connection, and supports connections over tcp
and websockets, with optional secure tls support.
* Additionally the minio server configuration has been bumped up
so mqtt configuration can be added.
* Configuration migration code is added with tests.
MQTT is an ISO standard M2M/IoT messaging protocol and was
originally designed for applications for limited bandwidth
networks. Today it's use is growing in the IoT space.
Minio server stores all its configuration data in ${HOME}/.minio/config.json file by default. Following sections provide detailed explanation of each fields and how to customize them. A complete example of config.json is available here
Configuration Directory
The default configuration directory is ${HOME}/.minio. You can override the default configuration directory using --config-dir command-line option. Minio server generates a new config.json with auto-generated access credentials when its started for the first time.
minio server --config-dir /etc/minio
Certificate Directory
TLS certificates are stored under ${HOME}/.minio/certs directory. You need to place certificates here to enable HTTPS based access. Read more about How to secure access to Minio server with TLS.
Following is the directory structure for Minio server with TLS certificates.
$ tree ~/.minio
/home/user1/.minio
├── certs
│ ├── CAs
│ ├── private.key
│ └── public.crt
└── config.json
Configuration Fields
Version
Field
Type
Description
version
string
version determines the configuration file format. Any older version will be automatically be migrated to the latest version upon startup. [DO NOT EDIT THIS FIELD MANUALLY]
Credential
Field
Type
Description
credential
Auth credential for object storage and web access.
credential.accessKey
string
Access key of 5 to 20 characters in length. You may override this field with MINIO_ACCESS_KEY environment variable.
credential.secretKey
string
Secret key of 8 to 40 characters in length. You may override this field with MINIO_SECRET_KEY environment variable.
Example:
exportMINIO_ACCESS_KEY=admin
exportMINIO_SECRET_KEY=password
minio server ~/Photos
Region
Field
Type
Description
region
string
region describes the physical location of the server. By default it is set to us-east-1, which is same as AWS3's default region. If you are unsure leave it to default.
Browser
Field
Type
Description
browser
string
Enable or disable access to web UI. By default it is set to on. You may override this field with MINIO_BROWSER environment variable.
Example:
exportMINIO_BROWSER=off
minio server ~/Photos
Logger
Field
Type
Description
logger
Server logs errors and fatal messages via logger. You may enable one or more loggers at the same time.
logger.console
Send log messages to console.
logger.console.enable
bool
Enable or disable console logger. Default is set to true.
logger.file
Send log message to a file.
logger.file.enable
bool
Enable or disable file logger. Default is set to false.
logger.file.filename
string
Path and name of the log file. Example: /var/log/minio.log
Notify
Field
Type
Description
notify
Notify enables bucket notification events for lambda computing via the following targets.