Digibee Storage

A Digibee Integration Platform oferece várias opções para armazenamento de arquivos. O Portal de Documentação ajuda os usuários a identificar a melhor solução. Esse artigo aborda Digibee Storage.

O Digibee Storage se conecta ao storage da Digibee Integration Platform, possibilitando que sejam realizadas as seguintes operações com arquivos: List, Download, Upload e Delete.

Parâmetros

Dê uma olhada nos parâmetros de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

Parâmetro
Descrição
Valor padrão
Tipo de dado

Operation

Operação a ser executada (Upload, Download, List ou Delete).

Upload

String

File Name (DB)

Nome do arquivo ou caminho completo (full file path) para o arquivo local, disponível apenas nas operações Download e Upload.

local-pdf-test.pdf

String

Remote File Name (DB)

Nome do arquivo remoto ou caminho relativo (ex.: tmp/file.txt) para o arquivo remoto. Este parâmetro é apresentado nas operações Download, Upload e Delete.

pdf-test.pdf

String

Page Size

Tamanho da página, ou seja, a quantidade de itens a serem retornados quando a operação List é utilizada. Se o valor não for especificado, todos os itens são retornados. Caso haja mais itens do que a quantidade determinada neste parâmetro, é possível solicitar uma segunda página (veja Page Token), a qual retorna os itens restantes. Disponível apenas se o parâmetro Operation assumir valor List.

Todos os itens retornados

Inteiro

Page Token

Token utilizado para solicitar a próxima página quando a operação List é executada. Nessa próxima página será retornada a quantidade de itens definidos no parâmetro Page Size.

N/A

String

Remote Directory

Diretório remoto base no qual será realizada a operação selecionada. Este parâmetro é apresentado nas operações List, Download, Upload e Delete.

Folder

String

Generate Download Link

Se a opção estiver ativada, um link público para download do arquivo é gerado. Este parâmetro é aplicável apenas na operação Upload.

False

Booleano

Link Expiration

Tempo para expiração do link, em milissegundos. Este parâmetro é válido apenas se a opção Generate Download Link estiver ativada.

N/A

Inteiro

Fail On Error

Se a opção estiver habilitada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade "success".

False

Booleano

Fluxo de mensagens

Entrada

Não se espera nenhuma mensagem de entrada específica, mas apenas o preenchimento dos parâmetros obrigatórios que variam conforme a operação selecionada. Veja abaixo a obrigatoriedade de parâmetros para cada operação:

  • List: todos os parâmetros são opcionais

  • Download: File Name e Remote File Name

  • Upload: File Name e Remote File Name

  • Delete: Remote File Name

No caso da operação Update, o arquivo informado no parâmetro File Name precisa estar no diretório local do pipeline.

Saída

Ao executar o componente utilizando a operação List, a seguinte estrutura de JSON será gerada:

{
  "content": [
    {
      "name": "temp//tmp/processed/file-3.txt",
      "contentType": "application/octet-stream",
      "contentEncoding": null,
      "createTime": 1581689153448,
      "bucket": "test-bucket",
      "size": 10
    },
    { ... }
  ],
  "pageToken": "XXXXXXXXXXXXL3RtcC9wcm9jZXNzZWQvZmlsZS0zLnR4dA==",
  "fileName": null,
  "remoteFileName": null,
  "remoteDirectory": "",
  "success": true
}
  • content: um vetor (array) de objetos para cada arquivo encontrado.

    • name: nome do arquivo remoto.

    • contentType: MIME type do arquivo.

    • contentEncoding: encoding do arquivo, caso exista.

    • createTime: timestamp da data de criação do arquivo.

    • bucket: bucket onde o arquivo se encontra.

    • size: tamanho do arquivo em bytes.

  • pageToken: token para recuperar próxima página quando o parâmetro Page Size é informado.

  • fileName: nome do arquivo local.

  • remoteFileName: nome do arquivo remoto.

  • remoteDirectory: nome da pasta base remota.

  • success: "true" se a última operação ocorreu com sucesso.

  • error: surge se um erro ocorreu e o Fail on Error é "false".

Ao executar o componente utilizando as operações Download, Upload e Delete, a seguinte estrutura de JSON será gerada:

{
  "fileName": "file.txt",
  "remoteFileName": "tmp/iso-8859-1-test.txt",
  "remoteDirectory": "",
  "success": true
}
  • fileName: nome do arquivo local.

  • remoteFileName: nome do arquivo remoto.

  • remoteDirectory: nome da pasta base remota.

  • success: "true" se a última operação ocorreu com sucesso.

Importante: a manipulação de arquivos dentro de um pipeline ocorre de forma protegida. Todos os arquivos podem ser acessados apenas por um diretório temporário, no qual cada pipeline key dá acesso ao seu próprio conjunto de arquivos.

Digibee Storage em Ação

List - lista de arquivos

Entrada

Parâmetros

  • Operation: List

  • Remote Directory: DGB-413

  • Page Size: 2

Saída

{
  "content": [
    {
      "name": "DGB-413/",
      "contentType": "text/plain",
      "contentEncoding": null,
      "createTime": 1552394033410,
      "bucket": "digibee-test-digibee-test-bucket",
      "size": 11
    },
    {
      "name": "DGB-413/iso8859-2.txt",
      "contentType": "text/plain",
      "contentEncoding": null,
      "createTime": 1552395963553,
      "bucket": "digibee-test-digibee-test-bucket",
      "size": 55
    }
  ],
  "pageToken": "ChVER0ItNDEzL2lzbzg4NTktMi50eHQ=",
  "fileName": null,
  "remoteFileName": null,
  "remoteDirectory": "DGB-413",
  "success": true
}

Como é possível ver, o resultado acima retorna a propriedade pageToken com um valor de referência para a próxima página. Essa propriedade será retornada quando o parâmetro Page Size é configurado (no exemplo está definido com o valor 2) e também quando há mais arquivos a serem listados.

List - lista de vários arquivos usando paginação

Entrada

Parâmetros

  • Operation: List

  • Remote Directory: DGB-413

  • Page Size: 2

  • Page Token: ChVER0ItNDEzL2lzbzg4NTktMi50eHQ=

Saída

{
  "content": [
    {
      "name": "DGB-413/utf-16-test.txt",
      "contentType": "text/plain",
      "contentEncoding": null,
      "createTime": 1552394973030,
      "bucket": "digibee-test-digibee-test-bucket",
      "size": 70
    },
    {
      "name": "DGB-413/utf-test.txt",
      "contentType": "text/plain",
      "contentEncoding": null,
      "createTime": 1552394644597,
      "bucket": "digibee-test-digibee-test-bucket",
      "size": 55
    }
  ],
  "fileName": null,
  "remoteFileName": null,
  "remoteDirectory": "DGB-413",
  "success": true
}

No resultado acima a propriedade pageToken não foi retornada. Isso sinaliza que não há mais arquivos a serem listados.

Download de um arquivo

Entrada

Parâmetros

  • Operation: Download

  • File Name: iso8859-2.txt

  • Remote File Name: iso8859-2.txt

  • Remote Directory: DGB-413

Saída

{
  "fileName": "iso8859-2.txt",
  "remoteFileName": "iso8859-2.txt",
  "remoteDirectory": "DGB-413",
  "success": true
}

Será realizado o download do arquivo no diretório local do pipeline.

Upload de um arquivo

Entrada

  • Arquivo local: file.txt

Parâmetros

  • Operation: Upload

  • File Name: file.txt

  • Remote File Name: file.txt

  • Remote Directory: DGB-413

Saída

{
  "fileName": "file.txt",
  "remoteFileName": "file.txt",
  "remoteDirectory": "DGB-413",
  "success": true
}

Entrada

  • Arquivo local: file.txt

Parâmetros

  • Operation: Upload

  • File Name: file.txt

  • Remote File Name: file.txt

  • Remote Directory: DGB-413

  • Generate A Download Link: true

  • Link Expiration (in ms): 604800000

Saída

{
  "fileName": "file.txt",
  "remoteFileName": "file.txt",
  "remoteDirectory": "DGB-413",
  "success": true,
  "urlGenerated": "<URL TO DOWNLOAD THE FILE>"
}

Com a configuração dos parâmetros de entrada acima, o arquivo ficará disponível para download por 7 dias (604800000ms) através do link gerado na propriedade de saída urlGenerated.

Delete - Remoção de um arquivo

Entrada

Parâmetros

  • Operation: Delete

  • Remote File Name: file.txt

  • Remote Directory: DGB-413

Saída

{
  "fileName": null,
  "remoteFileName": "file.txt",
  "remoteDirectory": "DGB-413",
  "success": true
}

Atualizado