# ZIP File

O **ZIP File** permite a compressão de arquivos no formato zip.

## 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 width="270">Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>File Name</strong> <code>(DB)</code></td><td>Nome do arquivo ou <em>full file path</em> (ex.: tmp/processed/file.txt) do arquivo a ser comprimido. Este parâmetro também fica disponível quando você clica no botão <strong>Add</strong> junto ao parâmetro <strong>Files</strong> (válido apenas para a operação <em>Multiple Compress</em>).</td><td>data.csv</td><td><em>String</em></td></tr><tr><td><strong>ZIP Operation</strong></td><td>Define the type of operation (<em>Compress</em>, <em>Multiple Compress</em> ou <em>Decompress</em>).</td><td><em>Compress</em></td><td><em>String</em></td></tr><tr><td><strong>Output File Name</strong> <code>(DB)</code></td><td>Nome do arquivo zip a ser gerado.</td><td>data.zip</td><td><em>String</em></td></tr><tr><td><strong>Custom Files Specification</strong></td><td>Válido somente para operação <em>Multiple Compress</em>. Se a opção estiver ativada, é possível passar dinamicamente os arquivos a serem comprimidos no parâmetro <strong>Files</strong>. Do contrário, os arquivos podem ser informados individualmente via chave-valor.</td><td><em>False</em></td><td>Booleano</td></tr><tr><td><strong>Files</strong></td><td>Válido somente para operação <em>Multiple Compress</em>. Esse campo serve para definir os arquivos a serem comprimidos. (se <strong>Custom Files Specification</strong> estiver ativado) ou individualmente clicando no botão <strong>Add</strong>).</td><td>N/A</td><td>Array of Objects (JSON) ou Opções de <em>Files</em></td></tr><tr><td><strong>Set Charset</strong></td><td>Válido somente para operação <em>Decompress</em>. Se a opção estiver ativada, você pode definir um <em>charset</em> específico para a operação.</td><td><em>False</em></td><td>Booleano</td></tr><tr><td><strong>Charset</strong></td><td>Disponível apenas se <strong>Set Charset</strong> estiver ativado. Selecione o <em>charset</em> desejado nesse campo.</td><td>N/A</td><td>Booleano</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>

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

### **Entrada** <a href="#entrada" id="entrada"></a>

O componente aceita qualquer mensagem de entrada, podendo utilizá-la por meio de *Double Braces*.

### **Saída** <a href="#sada" id="sada"></a>

#### **Sem erro**

```
{
"fileName": "data.csv",
"success": true
}
```

**Com erro**

```
{
"success": false,
"message": "File data.csv already exists.",
"exception":
"com.digibee.pipelineengine.exception.PipelineEngineRuntimeException"
}
```

## ZIP File em ação <a href="#zip-file-em-ao" id="zip-file-em-ao"></a>

### **Resposta de requisição** <a href="#resposta-de-requisio" id="resposta-de-requisio"></a>

```
{
"success": true,
"outputFileName": "data.zip"
}
```

* **outputFileName:** nome do arquivo escrito.
* **success:** se “true”, a operação foi executada com sucesso; se “false”, houve falha na operação.

### **Resposta de requisição contendo erro** <a href="#resposta-de-requisio-contendo-erro" id="resposta-de-requisio-contendo-erro"></a>

```
{
"exception": "java.io.FileNotFoundException: /tmp/pipeline-engine/3b3755ad-4256-429a-8898-2f7eea80f7db/data1.csv (No such file or directory)",
"message": "Encountered an I/O error while executing ZipFileConnector",
"success": false
}
```

* **success:** “false” quando a operação falha.
* **message:** mensagem sobre o erro.
* **exception:** informação sobre o tipo de erro ocorrido.

### **Manipulação de arquivos no pipeline** <a href="#manipulao-de-arquivos-no-pipeline" id="manipulao-de-arquivos-no-pipeline"></a>

O *pipeline* possui uma área temporária e local para a manipulação de arquivos, que é separada e validada somente durante a execução do fluxo.

Dessa forma, você deve entender o acesso aos arquivos como se fosse feito em sistema de arquivos virtual. Os nomes de arquivo podem conter quaisquer caracteres válidos e extensões, os quais também podem ter um diretório sempre relativo. Por exemplo:

* data.csv
* processamento/data.csv

Qualquer tentativa de acesso a outros diretórios absolutos será bloqueada durante a execução do *pipeline*.


---

# Agent Instructions: 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:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/files/zip-file.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
