Como Configurar e Integrar o MiniO com Java
Published: 2024-07-02 15:01:10

O MiniO é uma solução de armazenamento compatível com S3, ideal para empresas que precisam armazenar dados internamente. Além de oferecer capacidade de armazenamento de arquivos, essa solução permite a criação de data lakes, sendo especialmente útil para profissionais que lidam com grandes volumes de dados.

Neste artigo, vou demonstrar como configurar a integração com Java e realizar o envio de arquivos. Abordaremos os seguintes tópicos:

- 
Vantagens de Usar o MiniO;

- 
Levantando uma Imagem MiniO;

- 
Tela de Acesso ao MiniO;

- 
Configurando um Projeto em Java com MiniO;

- 
Arquivo de Configuração;

- 
Enviando Arquivos Usando o Postman;

- 
Exemplo de Como Enviar um Arquivo para o MiniO;

- 
Exemplo de Como Remover um Arquivo do MiniO;

- 
Exemplo de Como Buscar um Arquivo pelo Nome no MiniO.


Acompanhe o passo a passo detalhado para levantar uma imagem do MiniO, configurar seu projeto em Java e realizar o processo de envio de arquivos.

**Qual a vantagem de usar**

O MiniO é um servidor de armazenamento de objetos open-source e compatível com o S3 da Amazon, permitindo uma migração fácil para a Amazon. Além disso, está disponível para várias plataformas.

Levantando uma Imagem MiniO:

Vou explicar como iniciar uma imagem do MiniO no Docker e incluir as credenciais de acesso no arquivo docker-compose.yml. Abaixo está um exemplo:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/orfp052yxpx9etilq2wv.png)

docker-compose up -d

Para acessar localmente, basta informar a seguinte URL: http://localhost:9000/

E aqui está a tela de acesso:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b4ejh4vyc3nzsswdwfc6.png)


Configurando um projeto em java com Minio:

Como estou utilizando Maven, vou mostrar como adicionar as dependências necessárias no arquivo pom.xml:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/393f76uskjywwfcxvakn.png)


Agora, precisamos iniciar o MiniO. Para isso, vamos criar um arquivo de configuração da seguinte forma:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m7h67sqs38d3t09g8d2q.png)

No entanto, precisamos definir as variáveis de ambiente com as informações necessárias para que o projeto consiga se conectar ao MiniO.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y5yi337e1s4hbudeiyar.png)


Arquivo de configuração:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bcerwldt3jui6o1g3mkh.png)

Abaixo está um exemplo de como enviar um arquivo para o MiniO utilizando o Postman:


- 
Abra o Postman e selecione o método POST.

- 
Insira a URL do seu servidor MiniO
Vá até a aba "Body" e selecione "form-data".

- 
Adicione um campo com o nome file e, no valor, selecione o arquivo que deseja enviar.

- 
Clique em "Send" para enviar o arquivo.



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9msngix9dctfd1jpa7v5.png)


Abaixo está um exemplo de como enviar um arquivo para o MiniO utilizando Java:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3eu1zrghrzz1o3km4qpd.png)


Abaixo está um exemplo de código em Java para remover um arquivo do MiniO:



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/no08m2538wslvs4ao0lo.png)


Abaixo está um exemplo de como buscar um arquivo pelo nome no MiniO utilizando Java:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cwcmu3hp01l3jl7gsbmu.png)

**Conclusão**
Neste artigo, exploramos como o MiniO pode ser uma solução eficiente para o armazenamento de dados, oferecendo compatibilidade com o Amazon S3 e sendo uma alternativa open-source robusta. Abordamos desde a configuração do MiniO e a integração com Java até exemplos práticos de envio e remoção de arquivos.

O MiniO se destaca por sua facilidade de uso e flexibilidade, permitindo que empresas de todos os tamanhos implementem soluções de armazenamento escaláveis e seguras. Com a configuração correta e o uso das APIs, é possível integrar o MiniO a diversas aplicações, proporcionando uma experiência de armazenamento de objetos eficiente e acessível.

No próximo artigo, abordaremos como utilizar o MiniO com multitenancy, permitindo que você gerencie vários inquilinos de forma isolada e segura. Fique atento para aprender mais sobre essa funcionalidade avançada e como ela pode beneficiar ainda mais sua infraestrutura de armazenamento.

Repositório do Projeto:
https://github.com/adrianoaguiardez/minio-spring


Visite o MiniO

- 
Site Oficial do MiniO: https://min.io


Documentação

- 
Documentação Oficial: Documentação do MiniO
GitHub

- 
Repositório Oficial: https://github.com/minio/minio