Google Storage

Conheça o componente e saiba como utilizá-lo.

Erick Rubiales avatar
Escrito por Erick Rubiales
Atualizado há mais de uma semana

IMPORTANTE: esta documentação foi descontinuada. Leia a documentação Google Storage atualizada no nosso novo portal de documentação.

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.

Dê uma olhada nos parâmetros de configuração do componente:

  • Account: para o componente fazer a autenticação ao serviço, é necessário usar uma account do tipo PRIVATE KEY. Para saber mais sobre credenciais, clique aqui.

  • Operation: operação a ser executada, que pode ser Upload, Download, List ou Delete.

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

  • Bucket Name: esse recurso representa um bucket no Google Cloud Storage - há um único namespace compartilhado por todos os buckets.

  • Page Size: tamanho da página, ou seja, a quantidade de itens a serem retornados quando utilizada a operação List. 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.

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

  • File Name: nome do arquivo ou caminho completo (full file path) para o arquivo local, disponível apenas nas operações Download e Upload. Este parâmetro aceita Double Braces.

  • Remote File Name: nome do arquivo remoto ou caminho relativo (ex.: tmp/file.txt) para o arquivo remoto. Este parâmetro aceita Double Braces e é apresentado nas operações Download, Upload e Delete.

  • 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 aceita Double Braces e é apresentado nas operações List, Download, Upload e Delete.

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

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

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

IMPORTANTE: note que alguns dos parâmetros acima suportam Double Braces. Para entender como essa linguagem funciona, leia o nosso artigo clicando aqui.

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 Update é 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

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.

Google Storage em Ação

LIST 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 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 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
}

Respondeu à sua pergunta?