Google Storage

Descubra mais sobre o componente Google Storage e saiba como utilizá-lo na Digibee Integration Platform.

O Google Storage permite que uma conexão com o serviço Google Storage seja estabelecida e possibilita 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âmetroDescriçãoValor padrãoTipo de dado

Account

Para o componente fazer a autenticação ao serviço, é necessário usar uma conta do tipo Private key. Para saber mais sobre credenciais, visite a documentação oficial.

N/A

String

Operation

Operação a ser executada, que pode ser List, Download, Upload ou Delete.

Upload

String

Project ID

ID do projeto onde a operação com o arquivo será realizada.

projectId

String

Bucket Name

Esse recurso representa um bucket no Google Cloud Storage - há um único namespace compartilhado por todos os buckets.

bucketName

String

Page Size

Este parâmetro só está disponível quando a operação List é selecionada, e informa 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 pedir uma segunda página (veja Page Token), a qual retorna os itens restantes.

N/A

Inteiro

Page Token

Este parâmetro só está disponível quando a operação List é selecionada, e define o token utilizado para solicitar a próxima página quando a operação List é utilizada. Nessa próxima página será retornada a quantidade de itens definidos no parâmetro Page Size.

N/A

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

Remote Directory

Diretório remoto base, que pode ser relativo (ex.: pub/tmp) ou absoluto (ex.: /root/pub), 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.

0

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 e sim 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: Account, Project ID, Bucket Name

  • Download: Account, Project ID, Bucket Name, File Name e Remote File Name

  • Upload: Account, Project ID, Bucket Name, File Name e Remote File Name

  • Delete: Account, Project ID, Bucket Name e Remote File Name

No caso da operação Upload é necessária a existência de um arquivo 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.

  • 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.

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.

Google Storage em Ação

List - Lista de arquivos

Entrada

Parâmetros

Account: google-storage-test

Operation: List

Project ID: digibee-test

Bucket Name: digibee-test-digibee-test-bucket

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 para serem listados.

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

Entrada

Parâmetros

Account: google-storage-test

Operation: List

Project ID: digibee-test

Bucket Name: digibee-test-digibee-test-bucket

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

Account: google-storage-test

Operation: Download

Project ID: digibee-test

Bucket Name: digibee-test-digibee-test-bucket

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

Account: google-storage-test

Operation: Upload

Project ID: digibee-test

Bucket Name: digibee-test-digibee-test-bucket

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
}

Upload de um arquivo gerando link para download

Entrada

Arquivo local: file.txt

Parâmetros

Account: google-storage-test

Operation: Upload

Project ID: digibee-test

Bucket Name: digibee-test-digibee-test-bucket

File Name: file.txt

Remote File Name: file.txt

Remote Directory: DGB-413

Generate A Download Link: true

Link Expiration (in ms): 600000

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 10 minutos (600000ms) através do link gerado na propriedade de saída "urlGenerated".

Delete - Remoção de um arquivo

Entrada

Parâmetros

Account: google-storage-test

Operation: Delete

Project ID: digibee-test

Bucket Name: digibee-test-digibee-test-bucket

Remote File Name: file.txt

Remote Directory: DGB-413

Saída

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

Atualizado