MinIO é um projeto open-source que chamou minha atenção quando precisei migrar meu Seafile para outro servidor e vi que havia suporte para S3 object-storage.
Pesquisando um pouco mais sobre o projeto, vi que MinIO foi um dos pioneiros no armazenamento de objetos de alto desempenho, possuindo versões para raspberryPI (arm32 e 64bit), mac, windows e linux.
Este tutorial é um guia para instalação do MinIO com docker, estarei utilizando um rockpi4b de 4GB de ram com um nvme de 500GB.
O que é MinIO?
MinIO é um servidor object-storage que você poderá utilizar para armazenar diversos tipos de arquivos. Seja como backend de suas aplicações, suas fotos e vídeos pessoais ou até mesmo como backup para seu blog. O site MinIO possui uma interface intuitiva como também uma página para teste no site http://play.minio.io:9000 .
Instalação com Docker
Para configurar seu próprio servidor S3 object-storage com docker utilize o comando abaixo:
docker run -d --name minio
-v /mnt/ssd:/data
-p 9000:9000
minio/minio server /data
Veja que o comando acima, monta o diretório /mnt/ssd
como volume para o diretório /data
que é iniciado com o container. Faça a alteração necessária conforme seu ambiente.
Quando o container é iniciado a key e a secret são geradas automaticamente, elas são usadas para autenticar na interface web. Os códigos podem ser encontrados no log do container com o comando: docker logs minio
Created minio configuration file at /root/.minio
Endpoint: http://172.17.0.2:9000 http://127.0.0.1:9000
AccessKey: accessCode
SecretKey: secretCode
Region: us-east-1
SQS ARNs: <none>
Browser Access:
http://172.17.0.2:9000 http://127.0.0.1:9000
Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
$ mc config host add myminio http://172.17.0.2:9000 accessCode secretCode
Object API (Amazon S3 compatible):
Go: https://docs.minio.io/docs/golang-client-quickstart-guide
Java: https://docs.minio.io/docs/java-client-quickstart-guide
Python: https://docs.minio.io/docs/python-client-quickstart-guide
JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
Drive Capacity: 55 GiB Free, 63 GiB Total
Client MinIO
Você pode utilizar o MinIO de diversas maneiras, seja com o cliente mc
pela interface web ou com outras aplicações que tenham suporte a S3 como backend, como restic e duplicati para backups.
Neste tutorial vamos utilizar o client mc
ara subir arquivos para nosso servidor S3.
Utilize o comando abaixo para instalação do client no linux:
wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /usr/local/bin/mc
chmod +x /usr/local/bin/mc
mc --help
Com o cliente instalado, podemos configurar o minio client com o nosso servidor:
mc config host add minio http://127.0.0.1:9000 [Access_key] [Secret_key]
Agora que o servidor e cliente estão configurados segue alguns outros comandos para utilização:
- Criar novo bucket
mc mb<server-Name>/<bucket-Name>
- Listar arquivos
mc ls <server-name>
- Copiar arquivo para bucket
mc cp myobject.txt <server-Name>/<bucket-Name>
Outros comandos podem ser encontrados em:
Conclusão
Neste artigo, foi mostrado como instalar MinIO server utilizando docker. Além de como fazer upload de arquivos com o client mc
utilizando comandos no terminal.
Espero que este artigo tenha sido útil, qualquer dúvida deixe nos comentários.