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"]