> 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-drive.md).

# Google Drive

O **Google Drive** se conecta ao seu *drive* do Google e efetua 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*](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados com `(DB):`

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Account</strong></td><td>Define a conta a ser usada pelo componente. Contas suportadas: <em>Oauth 2</em>.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Operation</strong></td><td>Define a operação a ser executada (<em>List, Download, Upload, Delete</em>).</td><td><em>Upload</em></td><td><em>String</em></td></tr><tr><td><strong>Folder ID</strong></td><td>O ID da pasta do Google. Ele é encontrado na parte superior da URL quando estiver no interior da pasta selecionada no seu Google Drive.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>File Name</strong> <code>(DB)</code></td><td>Nome do arquivo ou caminho completo (<em>full file path</em>) do arquivo.<br><br>No caso da operação <em>Upload</em>, é o nome do arquivo já salvo; na operação <em>Download</em>, esse parâmetro define o nome e como o arquivo será salvo.</td><td>test</td><td><em>String</em></td></tr><tr><td><strong>File Extension Type</strong></td><td>Tipo de extensão do arquivo para efetuar <em>upload</em>. Ex.: text/csv, text/xml, image/png. Caso não seja especificado, o <em>upload</em> será efetuado com o tipo <em>application/octet-stream</em>.</td><td>application/octet-stream</td><td><em>String</em></td></tr><tr><td><strong>Mime Type On Upload</strong></td><td>Se você quiser converter o arquivo em um arquivo do tipo Google Workspace, assim como um Google Doc ou Planilha, defina o <em>mime type</em> e o componente fará a conversão durante o <em>upload</em>. O arquivo convertido para um tipo Google Workspace não poderá ser baixado.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Remote File Name</strong> <code>(DB)</code></td><td>Nome do arquivo ou caminho completo do arquivo remoto (ex.: tmp/file.txt). Este parâmetro está disponível para a operação <em>Upload</em>.</td><td>test</td><td><em>String</em></td></tr><tr><td><strong>Query</strong> </td><td>Este parâmetro está disponível para a operação <em>List</em> e define a <em>query language</em> de filtros durante a operação. Para mais informações sobre essa linguagem, visite <a href="https://developers.google.com/drive/api/v3/ref-search-terms">a documentação oficial do Google</a>.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Page Size</strong> </td><td><p>Este parâmetro está disponível para a operação <em>List</em> e informa a quantidade de itens a serem retornados quando a operação <em>List</em> é utilizada.</p><p></p><p>Se o valor não for especificado, todos os itens são retornados.</p></td><td>N/A</td><td>Inteiro</td></tr><tr><td><strong>Page Token</strong> </td><td>Este parâmetro está disponível para a operação <em>List</em>. Caso haja mais resultados após a listagem, o parâmetro será informado para que se possa continuar com a listagem paginada.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Field ID</strong> </td><td>Este parâmetro está disponível para as operações <em>Delete</em> e <em>Download</em> e informa o ID do arquivo.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Fail On Error</strong></td><td>Se a opção estiver habilitada, a execução do <em>pipeline</em> com erro será interrompida; do contrário, a execução do <em>pipeline</em> continua, mas o resultado vai mostrar um valor falso para a propriedade <em>"success"</em>.</td><td><em>False</em></td><td>Booleano</td></tr></tbody></table>

O Google Drive não segue o mesmo conceito de hierarquia de pastas. Portanto, não é possível efetuar buscas especificando um caminho de diretório. Exemplo:&#x20;

`dir1/dir2/dir3/fileName.extension`

Um outro detalhe sobre o Google Drive é que você pode salvar arquivos com o mesmo nome no mesmo diretório. Por isso que a API definida pelo Google utiliza o "*fileId*" para fazer o download ou remoção de arquivos ao invés do próprio nome do arquivo.

{% hint style="info" %}
Para efetuar qualquer uma dessas operações, é necessário cadastrar uma conta do tipo *OAuth 2* com o escopo de `"`[`https://www.googleapis.com/auth/drive`](https://www.googleapis.com/auth/drive)`"`.
{% endhint %}

## Fluxo de Mensagens <a href="#fluxo-de-mensagens" id="fluxo-de-mensagens"></a>

### List <a href="#list" id="list"></a>

#### **Entrada**

```
{
    "query": "'11HMcyPhqH4OpAVv7p0Ip1uNu-vGk0nKV' in parents",
    "pageSize": 5,
    "pageToken": null,
    "operation": "list",
    "failOnError":false
}
```

#### **Saída**

```
[{
    "name": "REMOTE_FILE_NAME or REMOTE_FOLDER_NAME",
    isFolder: false,
    "fileId": "FILE_ID",
    "mimeType": "FOLDER OR FILE MIME_TYPE",
    "description": "FOLDER or FILE DESCRIPTION"
}]
```

### Google Query Language <a href="#google-query-language" id="google-query-language"></a>

Veja alguns exemplos de *query*:&#x20;

#### Para buscar todos os arquivos/pastas dentro de uma pasta específica

```
"query": " 'FOLDER_ID' in parents "
```

#### Para fazer uma busca de arquivos que tenham o mesmo nome específico dentro de uma pasta

```
"query": " 'FOLDER_ID' in parents and name = 'FILE NAME' "
```

#### Para buscar um nome específico dentro de todo o seu Drive

```
"query": " name = 'FILE NAME' "
```

Na *query* acima, a busca vai ser feita em todo o seu drive, incluindo na pasta Lixeira (*Trash*). Caso não queira pesquisar nada que esteja na pasta *Trash*, então utilize a seguinte *query*:

```
"query": " name = 'FILE NAME' and trashed = false "
```

#### Para buscar um arquivo específico em 2 diretórios

{% code overflow="wrap" %}

```
"query": "'FOLDER_ID_1' in parents or 'FOLDER_ID_2' in parents and name = 'FILE NAME'"
```

{% endcode %}

#### **Saída**

```
{
    "data": [{
        "name": "REMOTE_FILE_NAME or REMOTE_FOLDER_NAME",
        isFolder: false,
        "fileId": "FILE_ID",
        "mimeType": "FOLDER OR FILE MIME_TYPE",
        "description": "FOLDER or FILE DESCRIPTION"
    }],
    "pageToken": "PAGE_TOKEN",
    "success":true
}
```

### Upload <a href="#upload" id="upload"></a>

#### **Entrada**

```
{
    "folderId": "11HMcyPhqH4OpAVv7p0Ip1uNu-vGk0nKV",
    "fileType": "text/csv",
    "remoteFileName": "test",
    "operation": "upload",
    "fileName": "test",
    "failOnError":false
}
```

#### **Saída**

```
{
    "folderId": "11HMcyPhqH4OpAVv7p0Ip1uNu-vGk0nKV",
    "fileId": "FILE_ID_UPLOADED",
    "remoteFileName": "test",
    "fileName": "test",
    "success":true
}
```

### Download <a href="#download" id="download"></a>

#### **Entrada**

```
{
    "fileId": "FILE_ID",
    "operation": "download",              
    "fileName": "test",              
    "failOnError":false  
}
```

#### **Saída**

```
{              
    "fileId": "FILE_ID_UPLOADED",              
    "fileName": "test",              
    "success":true  
}
```

### Delete <a href="#delete" id="delete"></a>

#### **Entrada**

```
{              
    "fileId": "FILE_ID",              
    "operation": "delete",              
    "failOnError":false  
}
```

#### **Saída**

```
{              
    "fileId": "FILE_ID_UPLOADED",              
    "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-drive.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.
