UploadFile - Senior X PLATFORM
280 views 14/08/2020 17/02/2021 lemoel-marques 1
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 senha (areaSecret) para cada conjunto de domínio + serviço, uma espécie de estrutura de diretório único e protegido para o arquivo que será enviado.
IMPORTANTE: Esta estrutura e a senha somente serão criados caso ainda não existam. Uma vez definido o areaSecret não poderá ser alterado.
"Uma string com o nome do domínio"
"domainName": "{string}",
"Nome do serviço que esta enviando o arquivo"
"Nome da pasta ou área de armazenamento"
"areaSecret": "{string}",
"Identificador do arquivo no serviço onde é utilizado"
"targetObjectId": "{string}"
"fileName": "{string}"
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}' }"
"targetObjectId": "{string}",
"uri": "{string}"
403 Permissão negada
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.
Caso aconteça um erro semelhante:
<Error><Code>AccessDenied
Verifique se o "targetObjectId" está nulo ou vazio (""), conforme exemplo abaixo:
"domainName":"andre",
"serviceName":"cliente",
"areaSecret":"teste",
"targetObjectId":"",
"fileName":"andre",
"version":"andre-teste",
"token":"andre",
"supportedProtocols":[
"style":" ",
"ttl":1
Altere o valor e realize os passos novamente, desde o POST, isso deverá corrigir o problema de AccessDenied.
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.
"Identificador único do arquivo"
"targetObject": "{string}",
"Esta propriedade foi devolvida na resposta da primitiva uploadFile"
"Se a cópia de trabalho deve ser liberada automaticamente após o commit."
"release": boolean
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 }"