Descricao
Configura armazenamento S3 para arquivos de midia (imagens, videos, audios, documentos). Quando configurado, midias podem ser armazenadas no S3 ao inves de serem enviadas via base64 no webhook.
Endpoints
| Metodo | Endpoint | Descricao |
|---|
| POST | /session/s3/config | Configurar S3 |
| GET | /session/s3/config | Obter configuracao atual |
| POST | /session/s3/test | Testar conexao |
| DELETE | /session/s3/config | Remover configuracao |
Configurar S3
Request
token: SEU_TOKEN
Content-Type: application/json
Body
{
"enabled": true,
"endpoint": "https://s3.amazonaws.com",
"region": "us-east-1",
"bucket": "meu-bucket-whatsapp",
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"path_style": false,
"public_url": "https://cdn.meusite.com",
"media_delivery": "both",
"retention_days": 30
}
Campos
| Campo | Tipo | Descricao |
|---|
enabled | boolean | Ativar/desativar S3 |
endpoint | string | Endpoint do S3 (vazio para AWS) |
region | string | Regiao do bucket |
bucket | string | Nome do bucket |
access_key | string | Chave de acesso |
secret_key | string | Chave secreta |
path_style | boolean | Usar path style (MinIO) |
public_url | string | URL publica/CDN (opcional) |
media_delivery | string | base64, s3 ou both |
retention_days | number | Dias para reter arquivos (0 = infinito) |
Response
{
"code": 200,
"data": {
"Details": "S3 configuration saved successfully"
},
"success": true
}
Obter Configuracao
Request
Response
{
"code": 200,
"data": {
"enabled": true,
"endpoint": "https://s3.amazonaws.com",
"region": "us-east-1",
"bucket": "meu-bucket",
"access_key": "***",
"path_style": false,
"public_url": "",
"media_delivery": "both",
"retention_days": 30
},
"success": true
}
Testar Conexao
Request
Response
{
"code": 200,
"data": {
"Details": "S3 connection test successful",
"Bucket": "meu-bucket",
"Region": "us-east-1"
},
"success": true
}
Exemplos de Provedores
AWS S3
{
"enabled": true,
"endpoint": "",
"region": "us-east-1",
"bucket": "meu-bucket",
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"path_style": false,
"media_delivery": "s3"
}
MinIO
{
"enabled": true,
"endpoint": "https://minio.meusite.com",
"region": "us-east-1",
"bucket": "whatsapp-media",
"access_key": "minioadmin",
"secret_key": "minioadmin",
"path_style": true,
"media_delivery": "both"
}
Backblaze B2
{
"enabled": true,
"endpoint": "https://s3.us-west-004.backblazeb2.com",
"region": "us-west-004",
"bucket": "meu-bucket-b2",
"access_key": "0004b0000000001",
"secret_key": "K004XXXXXXXXXXXXX",
"path_style": false,
"media_delivery": "s3"
}
| Opcao | Descricao |
|---|
base64 | Webhook inclui apenas base64 (padrao) |
s3 | Webhook inclui apenas URL do S3 |
both | Webhook inclui base64 e URL do S3 |
Para MinIO e outros S3-compativeis, use path_style: true.
Guarde suas credenciais S3 com seguranca. Elas sao criptografadas no banco de dados.