> For the complete documentation index, see [llms.txt](https://docs.digibee.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/file-storage/google-storage/google-storage-usage-scenarios.md).

# Google Storage: Cenários de uso

Dê uma olhada nos cenários de uso suportados abaixo. Para mais informações sobre o componente, seus parâmetros e operações, [veja a documentação do Google Storage](/documentation/connectors-and-triggers/pt-br/connectors/file-storage/google-storage.md).

## **Cenário 1: Lista de arquivos**

Digamos que você tenha 1 ou mais arquivos no serivço Google Storage e que você queira usar o componente **Google Storage** no modo *List*. Dessa forma, você terá acesso à lista de arquivos existentes e suas respectivas pastas.

Veja como isso é possível no exemplo a seguir:

1. Crie um *pipeline* e adicione o **Google Storage**.
2. Abra o formulário de configuração do componente.
3. Selecione uma conta no parâmetro **Account** (lembre-se que esse campo é obrigatório). Caso você não tenha uma conta configurada para acessar o Google Storage, primeiro é necessário gerar uma *primary key* através do serviço. [Leia a documentação externa do Google para saber mais sobre esse processo](https://cloud.google.com/iam/docs/keys-create-delete). Na sequência, configure uma conta na Digibee Integration Platform.
4. Selecione a opção *List* no parâmetro **Operation**.
5. Configure os outros campos obrigatórios do componente (**Project ID** e **Bucket Name**) assim como os opcionais (**Remote Directory**, **Page Size** e **Page Token**).
6. Clique em **Confirmar**.
7. Conecte o *trigger* ao **Google Storage**.
8. Execute um teste no *pipeline* (CTRL + ENTER).
9. Você verá uma lista dos arquivos disponíveis no Google Storage de acordo com as especificações que foram determinadas:

```
{
  "content": [
    {
      "name": "DGB-413/",
      "contentType": "text/plain",
      "contentEncoding": null,
      "createTime": 1552394033410,
      "bucket": "digibee-test-digibee-test-bucket",
      "size": 11
    },
    {
      "name": "DGB-413/iso-8859-1-test.txt",
      "contentType": "application/octet-stream",
      "contentEncoding": null,
      "createTime": 1579552641265,
      "bucket": "digibee-test-digibee-test-bucket",
      "size": 65
    }
  ],
  "pageToken": "ChtER0ItNDEzL2lzby04ODU5LTEtdGVzdC50eHQ=",
  "fileName": null,
  "remoteFileName": null,
  "remoteDirectory": "DGB-413",
  "success": true
}

```

Como você pode ser no exemplo acima, a opção escolhida foi "*PageSize 2*", que significa que apenas 2 arquivos serão listados. Se não há valor especificado nesse campo, então todos os arquivos serão listados.

Porém, recomendamos que você especifique o valor, pois o desempenho e o tempo de recuperação dos dados podem ser comprometidos caso isso não seja feito. Dê uma olhada no próximo cenário e saiba como fazer a iteração de múltiplos arquivos sem afetar a segurança e o desempenho.

## **Cenário 2: Lista de vários arquivos usando paginação**

Digamos que você tenha uma grande quantidade de arquivos em seu Google Storage e que você queira usar o componente **Google Storage** no modo *List*. Dessa forma, você será capaz de listar os arquivos existentes usando paginação.

Para fazer isso, você deve seguir esses passos:

1. Crie um *pipeline* e adicione o **Google Storage**. Defina o parâmetro **Step Name** como "*List-1*".
2. Abra o formulário de configuração do componente.
3. Selecione uma conta no parâmetro **Account** (lembre-se que esse campo é obrigatório).
4. Selecione a opção *List* no parâmetro **Operation**.
5. Configure os outros campos obrigatórios do componente **(Project ID** e **Bucket Name**) assim como os opcionais (**Remote Directory**, **Page Size** e **Page Token**).
6. Clique em **Confirmar**.
7. Adicione um segundo componente **Google Storage** ao *pipeline* e defina o parâmetro **Step Name** como "*List-2*".
8. Abra o formulário de configuração do segundo **Google Storage** e selecione a conta e operação, repetindo os passos 2, 3 e 4.
9. Configure os campos obrigatórios do componente mais uma vez (**Project ID**, **Bucket Name**, **Page Size** e **Page Token**) assim como os opcionais (**Remote Directory**). Defina o *Page Token* com a seguinte expressão *Double Braces*: `{{ message.pageToken }}`<br>

   *Double Braces* dão acesso à saida do componente anterior. Logo, o *Page Token* gerado pelo primeiro **Google Storage** ("*List-1*") permite que a próxima página de listagem de arquivos seja puxada para o segundo **Google Storage** ("*List-2*").&#x20;
10. Clique em **Confirmar**.
11. Conecte o *trigger* e os componentes:

<figure><img src="/files/BewZOnMHqpo2IJn2wx1D" alt=""><figcaption></figcaption></figure>

12. Execute um teste no *pipeline* (CTRL + ENTER).
13. Você verá uma lista dos arquivos disponíveis em seu serviço Google Storage de acordo com as especificações determinadas:

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

```

Como visto no exemplo acima, a saída mostra apenas os arquivos da última página (gerada pelo **Google Storage** com o nome "*List-2*"). No entanto, fica claro como você pode usar o *Page Token* para acessar páginas consecutivas.

## **Cenário 3: Download de um arquivo**

Digamos que você tenha um arquivo em seu Google Storage e que você queira usar o componente **Google Storage** no modo *Download*. Dessa forma, você terá acesso a um arquivo específico para ser usado pelo *pipeline*.

Veja como fazer isso:

1. Crie um *pipeline* e adicione o **Google Storage**.
2. Abra o formulário de configuração do componente.
3. Selecione uma conta no parâmetro **Account** (lembre-se que esse campo é obrigatório).
4. Selecione a opção *Download* no parâmetro **Operation**.
5. Configure os outros campos obrigatórios do componente (**Project ID**, **Bucket Name** e **Remote File Name**) assim como os opcionais (**File Name** e **Remote Directory**).
6. Clique em **Confirmar**.
7. Conecte o *trigger* ao **Google Storage**.
8. Execute um teste no *pipeline* (CTRL + ENTER).
9. Você verá a confirmação da existência do arquivo e disponibilidade no *pipeline*, com o nome de arquivo especificado:

```
{
  "fileName": "iso-8859.txt",
  "remoteFileName": "iso-8859-1-test.txt",
  "remoteDirectory": "DGB-413",
  "success": true
}

```

## **Cenário 4: Upload de um arquivo**

Digamos que você tenha um arquivo no *pipeline* e queira usar o componente **Google Storage** no modo *Upload*. Dessa forma, o arquivo especificado se torna disponível em seu serviço Google Storage.

Saiba como fazer isso:

1. Crie um *pipeline* e adicione o **Google Storage**.
2. Abra o formulário de configuração do componente.
3. Selecione uma conta no parâmetro **Account** (lembre-se que esse campo é obrigatório).
4. Selecione a opção *Upload* no parâmetro **Operation**.
5. Configure os outros campos obrigatórios do componente (**Project ID**, \*\*Bucket Name \*\*e **File Name**) assim como os opcionais (**Remote** **File Name** e **Remote Directory**).
6. Clique em **Confirmar**.
7. Conecte o *trigger* ao **Google Storage**.
8. Execute um teste no *pipeline* (CTRL + ENTER).
9. Você verá uma confirmação da criação do arquivo no Google Storage, com o nome do arquivo remoto e diretório remoto especificados:

```
{
  "fileName": "iso-8859.txt",
  "remoteFileName": "iso-8859-upload.txt",
  "remoteDirectory": "DGB-413",
  "success": true
}

```

## **Cenário 5: Remoção de um arquivo**

Digamos que você tenha um arquivo em seu Google Storage e queira usar o componente **Google Storage** no modo *Delete*. Dessa forma, o arquivo é removido do seu Google Storage.

Para fazer isso, siga os passos a seguir:

1. Crie um *pipeline* e adicione o **Google Storage**.
2. Abra o formulário de configuração do componente.
3. Selecione uma conta no parâmetro **Account** (lembre-se que esse campo é obrigatório).
4. Selecione a opção *Delete* no parâmetro **Operation**.
5. Configure os outros campos obrigatórios do componente (**Project ID**, \*\*Bucket Name \*\*e **Remote File Name**) assim como os opcionais (**Remote Directory**).
6. Clique em **Confirmar**.
7. Conecte o *trigger* ao **Google Storage**.
8. Execute um teste no *pipeline* (CTRL + ENTER).
9. Você verá uma confirmação da remoção do arquivo do seu Google Storage:

```
{
  "fileName": null,
  "remoteFileName": "iso-8859-upload.txt",
  "remoteDirectory": "DGB-413",
  "success": true
}

```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/file-storage/google-storage/google-storage-usage-scenarios.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
