Como Subir archivos a Minio Storage desde Kotlin

minio

Algunas ves se han preguntando ¿Como Subir archivos a Minio Storage desde Kotlin?. Hace unas semanas desarrollando una nueva aplicación me tope con un nuevo requerimiento 🙃 , subir imágenes desde el celular hacia un Storage en la nube, si bien se podría hacer por un servicio u otras alternativas, el cliente contaba con sus servidores y deseaba subir sus archivos a través de Minio para después hacer su respectivo procesamiento de las imágenes.

Si no saben que es Minio o para que sirve 👿, les coloque un hipervinculo a la pagina para que puedan fácilmente leer, pero en resumidas palabras sirve para crear tu servidor de almacenamiento de objetos tipo AWS S3. Como recomendación configuren con un AccessKey y SecretKey no lo dejen el por defecto.

Servidor donde se levanto Minio

La clase completa se las compartiré por gist, pero voy a comentarles las partes mas importantes 🤠, después de establecer el endpoint, el accessKey y el secretKey e instanciamos la clase AmazonS3Client verificamos si existe el repositorio donde vamos a subir los archivos, si no existe se crea.

Comente las siguientes lineas que es para listar todos los repositorios que ya tenemos en nuestro servidor, pero si se llega a necesitar.

Sección donde se crea el repositorio o se listan las que se tienen

El método para subir es super simple, le pasamos como parámetros el repositorio donde queremos subir, el archivo, el nombre del archivo, y un flag que indica que puede ser leído por cualquiera.

Método para subir los archivos

El código completo lo tienen aquí, espero que les pueda ayudar y si tienen algo que agregar o aportar a como subir archivos a Minio storage desde Kotlin, todo es bienvenido. Saludos! 🖖