> 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

Conheça os cenários de uso suportados ao usar o componente Google Storage na Digibee Integration Platform.

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="https://content.gitbook.com/content/SKBJ6ZiEWBU93x170HH4/blobs/KglosRW9q3GXjUy2Vr0m/google%20storage%20user%20scenario%2001%20eng%20oct%2026.png" 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
