APIs

UploadFile

83 views 14/08/2020 09/10/2020 lemoel-marques 0

UploadFile

O processo para envio de arquivos consiste em 3 passos:

1) uploadFile ou uploadFiles

Devemos usar a primitiva uploadFile para receber um link da AWS com o endereço de upload do arquivo ou a primitiva uploadfiles ser for mais que um arquivo.
Esta primitiva vai criar uma área onde será colocado os dados, uma espécie de estrutura de diretórios único para o arquivo que será enviado.
Esta estrutura somente será criada caso não exista.

Payload de entrada
{
  "Uma string com o nome do domínio"
  "domainName": "{string}",

  "Nome do serviço que esta enviando o arquivo"
  "serviceName": "{string}",

  "Nome da pasta ou área de armazenamento"
  "areaSecret": "{string}",

  "Identificador do arquivo no serviço onde é utilizado"
  "targetObjectId": "{string}"
 
  "Nome do arquivo"
  "fileName": "{string}"
}
Request
curl --location --request POST "https://api.senior.com.br/platform/blob_service/actions/uploadFile" --header "Content-Type: application/json" --header "Accept: application/json" --header "Authorization: Bearer {token}" --data-raw "{ 'domainName': '{string}', 'serviceName': '{string}', 'areaSecret': '{string}', 'targetObjectId': '{string}', 'fileName': '{string}' }"
Response
  • 200 Ok
{
    "domainName": "{string}",
    "serviceName": "{string}",
    "targetObjectId": "{string}",
    "version": "{string}",
    "token": "{string}",
    "location": {
        "protocol": "S3",
        "uri": "{string}"
    },
    "fileName": "{string}"
}
  • 403 Permissão negada
  • 401 Unauthorized
{
    "error_description": "The access token is invalid or has expired",
    "error": "invalid_token"
}
2) Fazer efetivamente o upload dos dados

Para fazer o upload dos dados faça um put utilizando a uri fornecida pela resposta da primitiva uploadFile.
Na resposta da primitiva uploadFile, temos informações que serão usadas no terceiro passo que é o commit.
OBS: O Link devolvido na propriedade uri do primeiro passo tem um tempo de vida de 15 minutos. A partir deste tempo não será mais possível utilizar o link para fazer o envio.
Será necessário repetir o primeiro passo, nestes casos.

3) Commit – commitFile

Todos os dados enviados estão em uma área temporária, é necessário fazer o commit para finalmente os dados serem movidos para uma área “permanente”. Caso não seja feito o commit os dados serão apagados automaticamente. É neste passo que vamos receber a url para futuramente fazermos o download dos dados.
OBS: Todos os dados que serão utilizados no commit podem ser obtidos na resposta do primeiro passo, da primitiva uploadFiles.

Payload de entrada
{
  "Uma string com o nome do domínio"
  "domainName": "{string}",

  "Nome do serviço que esta enviando o arquivo"
  "serviceName": "{string}",

  "Nome da pasta ou área de armazenamento"
  "areaSecret": "{string}",

  "Identificador único do arquivo"
  "targetObject": "{string}",
 
  "Nome do arquivo"
  "fileName": "{string}",

  "Esta propriedade foi devolvida na resposta da primitiva uploadFile"
  "version": "{string}",

  "Se a cópia de trabalho deve ser liberada automaticamente após o commit."
  "release": boolean
}
Request
curl --location --request POST "https://api.senior.com.br/platform/blob_service/actions/commitFile" --header "Content-Type: application/json" --header "Accept: application/json" --header "Authorization: Bearer {token}" --data-raw "{ 'domainName': '{string}', 'serviceName': '{string}', 'areaSecret': '{string}', 'targetObjectId': '{string}', 'fileName': '{string}', 'version': '{string}', 'release': boolean }"

Este artigo foi útil para você?