S3/Minio
A Evolution API suporta a integração com Amazon S3 ou Minio para armazenar arquivos de mídia do WhatsApp, como imagens, áudios e documentos. Essa integração permite que os arquivos sejam armazenados de forma segura e acessível, com links gerados automaticamente e incluídos nos webhooks enviados pela API.
Configuração de Variáveis de Ambiente
Para habilitar o armazenamento S3 ou Minio, você deve definir as variáveis de ambiente adequadas no arquivo .env
da Evolution API. Abaixo estão as variáveis necessárias e suas funções:
Variáveis de Configuração para S3
S3_ENABLED=true
S3_ACCESS_KEY=lJiKQSKlco6UfSUJSnZt
S3_SECRET_KEY=gZXkzkXQwhME8XEmZVNF0ImSWxIpbXeJ5UoPy4s1
S3_BUCKET=evolution
S3_PORT=443
S3_ENDPOINT=s3.eu-west-3.amazonaws.com
S3_USE_SSL=true
S3_REGION=eu-west-3
Explicação das Variáveis
S3_ENABLED
: Ativa (true
) ou desativa (false
) o uso do S3 ou Minio para armazenamento de arquivos.S3_ACCESS_KEY
: Chave de acesso fornecida pelo provedor do serviço (AWS ou Minio).S3_SECRET_KEY
: Chave secreta correspondente à chave de acesso, usada para autenticação.S3_BUCKET
: Nome do bucket onde os arquivos serão armazenados.S3_PORT
: Porta utilizada para a conexão. Normalmente443
para conexões SSL.S3_ENDPOINT
: Endpoint do serviço S3 ou Minio. Para Amazon S3, é necessário incluir a região no formatoregion: s3.[region].amazonaws.com
, por exemplo,s3.eu-west-3.amazonaws.com
.S3_USE_SSL
: Define se a conexão deve usar SSL (true
oufalse
).S3_REGION
: A região do bucket S3 (padrão éus-east-1
).
Exemplos de Configuração
Amazon S3
Ao utilizar o Amazon S3, é essencial especificar o endpoint corretamente, incluindo a região. Aqui está um exemplo:
S3_ENABLED=true
S3_ACCESS_KEY=your-aws-access-key
S3_SECRET_KEY=your-aws-secret-key
S3_BUCKET=my-s3-bucket
S3_PORT=443
S3_ENDPOINT=s3.eu-west-3.amazonaws.com
S3_USE_SSL=true
S3_REGION=eu-west-3
Minio
Para Minio, o endpoint pode ser o domínio personalizado do serviço:
S3_ENABLED=true
S3_ACCESS_KEY=your-minio-access-key
S3_SECRET_KEY=your-minio-secret-key
S3_BUCKET=my-minio-bucket
S3_PORT=443
S3_ENDPOINT=minio.mycompany.com
S3_USE_SSL=true
Como Funciona o Armazenamento de Mídia
Quando o armazenamento S3 ou Minio é configurado corretamente, todos os arquivos de mídia recebidos do WhatsApp (como imagens, vídeos, áudios, etc.) são automaticamente enviados para o bucket configurado. A URL pública do arquivo armazenado é então gerada e incluída no webhook da Evolution API.
Webhook com mediaUrl
Quando um arquivo de mídia é recebido e armazenado, o webhook enviado pela Evolution API incluirá o mediaUrl
no corpo da mensagem. Isso permite que sua aplicação acesse diretamente o arquivo armazenado no S3 ou Minio.
Exemplo de Webhook
Aqui está um exemplo de como o webhook com mediaUrl
pode aparecer:
{
"event": "messages.upsert",
"data": {
"message": {
...
"mediaUrl": "https://files.evolution-api-pro.com/bucket/path/to/media/file.jpg",
...
}
}
}
Considerações Finais
Integrar a Evolution API com Amazon S3 ou Minio para o armazenamento de arquivos de mídia oferece uma solução escalável e segura para gerenciar conteúdos de mídia do WhatsApp. Ao configurar as variáveis de ambiente corretamente, você garante que todos os arquivos de mídia sejam armazenados e acessíveis conforme necessário, proporcionando maior controle sobre os dados e a capacidade de integrá-los facilmente em suas aplicações.
Para mais detalhes sobre as variáveis de ambiente e outras configurações avançadas, consulte a seção de variáveis de ambiente.