API de Controle de Arquivos¶
A API de Controle de Arquivos permite transferir arquivos, visualizar arquivos existentes do diretório de trabalho, criar e remover registros de arquivos no sistema.
Listar arquivos¶
Exibe os arquivos existentes no diretório de trabalho. Esse método realiza a leitura do diretório de trabalho e apresenta uma lista com a URL para acesso aos arquivos e pastas de lotes.
Requisição
GET /trd/audiofile/list
Parâmetros da requisição
Nenhum.
Resultado
O resultado é uma lista com dois atributos:
- nome do arquivo ou pasta de lote
- URL do arquivo ou pasta, ou mensagem indicando se o arquivo não foi cadastrado no sistema ou se existe erro de leitura
Exemplos
Chamada REST:
curl -X GET http://localhost:8080/trd/audiofile/list
Resultado JSON:
{
"file1.wav":"http://localhost:8080/audiofile/5b76faed4d27fc0001331dcc",
"file2.wav":"Not created",
"folder1":"http://localhost:8080/audiofile/list/folder1",
"SOLICITA����O DE FALTA DE ENERGIA 1.wav":"Malformed input or input contains unmappable characters",
}
Listar arquivos de um lote (pasta)¶
Exibe os arquivos de um lote, existentes em uma pasta no diretório de trabalho. Esse método realiza a leitura da pasta no diretório de trabalho e apresenta uma lista com a URL para acesso aos arquivos.
Requisição
GET /trd/audiofile/list/batch/{batch}
Parâmetros da requisição
A requisição contém a variável de path:
- batch: nome da pasta do lote no diretório de trabalho.
Resultado
O resultado é uma lista com dois atributos:
- nome do arquivo ou pasta de lote
- URL do arquivo ou pasta, ou mensagem indicando se o arquivo não foi cadastrado no sistema ou se existe erro de leitura
Exemplos
Chamada REST:
curl -X GET http://localhost:8080/trd/audiofile/list/batch/folder1
Resultado JSON:
{
"file1.wav":"http://localhost:8080/audiofile/5b76faed4d27fc0001331dcc",
"file2.wav":"http://localhost:8080/audiofile/5c82ae28e49363000aac91d2",
"file3.wav":"http://localhost:8080/audiofile/5c922fef6b51a300099861af"
}
Exibir registro de arquivo¶
Exibe os dados de um arquivo cadastrado no sistema. Apresenta as informações de formato e número de canais de áudio.
Requisição
GET /trd/audiofile/{id}
Parâmetros da requisição
A requisição deve conter a variável de path:
- id: identificação do arquivo cadastrado no sistema.
Resultado
O resultado é um objeto que possui a seguinte estrutura:
- audioChannels: informação adicional sobre o canal de áudio, gerado após a normalização (opcional)
- batch: nome da pasta do lote de arquivos
- control: controle do processo de transcrição
- create_date: data de criação do cadastro do arquivo
- filename: nome do arquivo
- format: formato do arquivo
- info: informações adicionais sobre o arquivo de áudio, geradas após a normalização (opcional)
- md5: hash MD5 do arquivo, gerado no momento do cadastro
- size: tamanho do arquivo (em bytes)
- status: etapa do processo de transcrição
A informação de canal é uma lista e cada elemento possui a seguinte estrutura:
- bandwidth: largura de banda (kbps)
- channel: identificação do canal
- duration: tempo de fala (seg)
Exemplos
Chamada REST:
curl -X GET http://localhost:8080/trd/audiofile/5b76faed4d27fc0001331dcc
Resultado JSON:
{
"audioChannels": [
{
"bandwidth": "4000",
"channel": 1,
"duration": 520
}
],
"batch": "folder1",
"control": "FINISHED",
"create_date": "Fri, 08 Mar 2019 18:02:16 GMT",
"filename": "file1.wav",
"format": "wav",
"info": {
"BitRate": "128000",
"BitRateMode": "Constant",
"Channels": "1",
"Codec": "PCM",
"Comment": "",
"Compression_Mode": "",
"Duration": "00:08:40.000",
"EncodedLibrary": "",
"FileCreatedDate": "",
"FileModifiedDate": "UTC 2019-03-08 18:02:16",
"FileSize": "8320044",
"Format": "Wave",
"InputSamplingRate": "8000",
"OutputSamplingRate": "8000",
"ReduntantChannel": false,
"Track": ""
},
"last_update": "Fri, 08 Mar 2019 18:02:16 GMT",
"md5": "bee0c78600f52fdf65edc1a742970313",
"size": 8320044,
"status": "RECOGNIZED"
}
Upload de Arquivos¶
Realiza o upload de arquivos para o diretório de trabalho. Os arquivos tem seu formato e tamanho validados e são cadastrados no sistema.
Requisição
POST /audiofile/upload
Parâmetros da requisição
A requisição deve conter os campos descritos a seguir.
batch | nome da pasta no diretório de trabalho, caso o arquivo pertença a um lote (opcional). |
metadata | mapa de valores associados aos arquivos (opcional). |
files | caminho completo do arquivo (compatibilidade com API 2.1.3 ou mais antiga). |
files[] | caminho completo dos arquivos (para mais de um arquivo, apartir da API 2.2.0). |
Resultado
O resultado é uma lista com a URL dos arquivos cadastrados. A identificação dos arquivos deve ser salva para uso nas demais operações.
Exemplos
Chamada REST:
curl -X POST http://localhost:8080/trd/audiofile/upload \
-H 'Content-type:multipart/form-data' \
-F 'batch=folder1' \
-F 'files[]=@<path-to-file>/file1.wav' \
-F 'files[]=@<path-to-file>/file2.wav'
Resultado JSON:
{
"file1.wav":"http://localhost:8080/trd/audiofile/5b9bdfc2be077700018e768b",
"file2.wav":"http://localhost:8080/trd/audiofile/5b76faed4d27fc0001331dcc"
}
ou então:
curl -X POST http://localhost:8080/trd/audiofile/upload \
-H 'Content-type:multipart/form-data' \
-F 'batch=folder1' \
-F 'files=@<path-to-file>/file3.wav'
Resultado JSON:
{
"file3.wav":"http://localhost:8080/trd/audiofile/5d1ffe607abc3d000eaf0fa2"
}
- Código de retorno em caso de erro:
- 400: Erro genérico.
- 409: Arquivo já existe.
- 413: Tamanho do arquivo excede o limite.
- 415: Formato de arquivo não suportado.
Criar Arquivos¶
Cria no sistema o cadastro de arquivos depositados no diretório de trabalho. Os arquivos têm seu formato e tamanho validados, antes de serem inseridos no sistema.
Requisição
GET /trd/audiofile/create/{file}
Parâmetros da requisição
A requisição deve conter a variável de path:
- file: nome do arquivo existente no diretório de trabalho.
Resultado
O resultado a URL do arquivo cadastrado. A identificação do arquivo deve ser salva para uso nas demais operações.
Exemplos
Chamada REST:
curl -X GET http://localhost:8080/trd/audiofile/create/file1.wav
Resultado JSON:
{
"file1.wav":"http://localhost:8080/trd/audiofile/5b9bdfc2be077700018e768b"
}
Criar arquivos em lote¶
Cria no sistema o cadastro de arquivos depositados em uma pasta de lote no diretório de trabalho. Os arquivos têm seu formato e tamanho validados, antes de serem inseridos no sistema. Arquivos que já tenham sido cadastrados no sistema são ignorados.
Requisição
GET /trd/audiofile/create/{batch}
Parâmetros da requisição
A requisição contém a variável de path:
- batch: nome da pasta do lote no diretório de trabalho (opcional).
Resultado
O resultado é uma lista com a URL dos arquivos cadastrados. A identificação dos arquivos deve ser salva para uso nas demais operações.
Exemplos
Chamada REST:
curl -X GET http://localhost:8080/trd/audiofile/create/folder1 \
-H 'Content-type:application/json' \
--data '{"metadata":{"label1": "value1", "label2": 155}}'
Resultado JSON:
{
"file1.wav":"http://localhost:8080/trd/audiofile/5b9bdfc2be077700018e768b",
"file2.wav":"http://localhost:8080/trd/audiofile/5b76faed4d27fc0001331dcc"
}
Remover arquivo¶
Apaga no sistema o cadastro de arquivo. O arquivo também é removido do diretório de trabalho.
Nota
A deleção de arquivo só é permitida quando o atributo controle (control) possuir um dos seguintes valores: IDLE, FINISHED ou FAILED.
Requisição
DELETE /audiofile/delete/{id}
Parâmetros da requisição
A requisição contém a variável de path:
- id: identificação do arquivo cadastrado no sistema.
Opcionalmente, a requisição contém a variável de query:
- deleteOnDisk: indica se o arquivo deve ser apagado do diretório de trabalho (valor default = true) (opcional).
Resultado
O resultado é o nome do arquivo removido.
Exemplos
Chamada REST:
curl -X DELETE http://localhost:8080/trd/audiofile/delete/5b76faed4d27fc0001331dcc
Resultado Texto:
HTTP/1.1 200
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 9
file1.wav
Remover arquivos em lote¶
Apaga no sistema o cadastro de todos os arquivos de um lote. Os arquivos também são removidos do diretório de trabalho.
Nota
A deleção dos arquivos só é permitida quando o atributo controle (control) possuir um dos seguintes valores: IDLE, FINISHED ou FAILED.
Requisição
DELETE /audiofile/delete/batch/{batch}
Parâmetros da requisição
A requisição contém a variável de path:
- batch: nome da pasta do lote no diretório de trabalho.
Opcionalmente, a requisição contém a variável de query:
- deleteOnDisk: indica se os arquivos devem ser apagados do diretório de trabalho (valor default = true) (opcional).
Resultado
O resultado é a lista com os nomes dos arquivos removidos.
Exemplos
Chamada REST:
curl -X DELETE http://localhost:8080/trd/audiofile/delete/batch/folder1
Resultado Texto:
HTTP/1.1 200
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 24
["file1.wav", "file2.wav"]