mirror of
https://github.com/EvolutionAPI/evolution-audio-converter.git
synced 2025-07-13 15:14:50 -06:00
api key
This commit is contained in:
parent
c6c820ac04
commit
0be57219e6
@ -1 +1,2 @@
|
||||
PORT=4040
|
||||
PORT=4040
|
||||
API_KEY=429683C4C977415CAAFCCE10F7D57E11
|
14
README.md
14
README.md
@ -54,6 +54,7 @@ Crie um arquivo `.env` no diretório raiz do projeto com a seguinte configuraç
|
||||
|
||||
```env
|
||||
PORT=4040
|
||||
API_KEY=sua_chave_api_secreta_aqui
|
||||
```
|
||||
|
||||
Isso define a porta onde o serviço será executado.
|
||||
@ -96,24 +97,31 @@ Você pode enviar requisições `POST` para o endpoint `/process-audio` com um a
|
||||
- **Base64** (para enviar o áudio codificado em base64)
|
||||
- **URL** (para enviar o link do arquivo de áudio)
|
||||
|
||||
### Autenticação
|
||||
|
||||
Todas as requisições devem incluir o cabeçalho `apikey` com o valor da `API_KEY` configurada no arquivo `.env`.
|
||||
|
||||
### Exemplo de Requisição via cURL
|
||||
|
||||
#### Envio como Form-data
|
||||
|
||||
```bash
|
||||
curl -X POST -F "file=@caminho/do/audio.mp3" http://localhost:4040/process-audio
|
||||
curl -X POST -F "file=@caminho/do/audio.mp3" http://localhost:4040/process-audio \
|
||||
-H "apikey: sua_chave_api_secreta_aqui"
|
||||
```
|
||||
|
||||
#### Envio como Base64
|
||||
|
||||
```bash
|
||||
curl -X POST -d "base64=$(base64 caminho/do/audio.mp3)" http://localhost:4040/process-audio
|
||||
curl -X POST -d "base64=$(base64 caminho/do/audio.mp3)" http://localhost:4040/process-audio \
|
||||
-H "apikey: sua_chave_api_secreta_aqui"
|
||||
```
|
||||
|
||||
#### Envio como URL
|
||||
|
||||
```bash
|
||||
curl -X POST -d "url=https://exemplo.com/caminho/para/audio.mp3" http://localhost:4040/process-audio
|
||||
curl -X POST -d "url=https://exemplo.com/caminho/para/audio.mp3" http://localhost:4040/process-audio \
|
||||
-H "apikey: sua_chave_api_secreta_aqui"
|
||||
```
|
||||
|
||||
### Resposta
|
||||
|
@ -9,6 +9,7 @@ services:
|
||||
- evolution-net
|
||||
environment:
|
||||
- PORT=4040
|
||||
- API_KEY=429683C4C977415CAAFCCE10F7D57E11
|
||||
expose:
|
||||
- 4040
|
||||
|
||||
|
26
main.go
26
main.go
@ -18,6 +18,28 @@ import (
|
||||
"github.com/joho/godotenv"
|
||||
)
|
||||
|
||||
func validateAPIKey(c *gin.Context) bool {
|
||||
apiKey := os.Getenv("API_KEY")
|
||||
if apiKey == "" {
|
||||
fmt.Println("API_KEY não configurada no arquivo .env")
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Erro interno no servidor"})
|
||||
return false
|
||||
}
|
||||
|
||||
requestApiKey := c.GetHeader("apikey")
|
||||
if requestApiKey == "" {
|
||||
c.JSON(http.StatusUnauthorized, gin.H{"error": "API_KEY não fornecida"})
|
||||
return false
|
||||
}
|
||||
|
||||
if requestApiKey != apiKey {
|
||||
c.JSON(http.StatusUnauthorized, gin.H{"error": "API_KEY inválida"})
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func convertAudioToOpusWithDuration(inputData []byte) ([]byte, int, error) {
|
||||
cmd := exec.Command("ffmpeg", "-i", "pipe:0", "-ac", "1", "-ar", "16000", "-c:a", "libopus", "-f", "ogg", "pipe:1")
|
||||
|
||||
@ -58,6 +80,10 @@ func convertAudioToOpusWithDuration(inputData []byte) ([]byte, int, error) {
|
||||
}
|
||||
|
||||
func processAudio(c *gin.Context) {
|
||||
if !validateAPIKey(c) {
|
||||
return
|
||||
}
|
||||
|
||||
var inputData []byte
|
||||
var err error
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user