# ZIP File V2

O **ZIP File V2** compacta arquivos no formato `.zip`, com ou sem redução de tamanho.

## **Parâmetros**

Dê uma olhada nos parâmetros de configuração do conector. Parâmetros suportados por [expressões Double Braces](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/double-braces/overview) estão marcados com `(DB)`.

### **Aba General**

<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>ZIP Operation</strong></td><td>Define o tipo de operação (<code>Compress</code>, <code>Multiple Compress</code> ou <code>Decompress</code>).</td><td><code>Compress</code></td><td>String</td></tr><tr><td><strong>Compression Method</strong></td><td><p>Método de compactação a ser utilizado. As opções são:</p><ul><li><strong>Store</strong>: Não compacta o arquivo. Recomendado para arquivos que já estão compactados ou que não precisam de compactação. Processamento mais rápido.</li><li><strong>Deflate</strong>: Compacta o arquivo. Adequado para a maioria dos tipos de dados, especialmente textos e arquivos com padrões repetidos. Processamento mais lento.</li></ul></td><td><code>Store</code></td><td>String</td></tr><tr><td><strong>ZIP Encryption Method</strong></td><td><p>Método de criptografia ZIP a ser utilizado. As opções são: </p><ul><li><strong>Zip Standard</strong>: Método básico de criptografia, compatível com a maioria das ferramentas ZIP. Segurança menor. </li><li><strong>AES</strong>: Advanced Encryption Standard. Oferece maior segurança, mas pode não ser compatível com todas as ferramentas ZIP.</li></ul></td><td><code>Zip Standard</code></td><td>String</td></tr><tr><td><strong>ZIP AES Key Strength</strong></td><td>Define a força da chave de criptografia ao utilizar <strong>AES</strong> como <strong>ZIP Encryption Method</strong>. As opções são: <strong>Key Strength 128</strong> e <strong>Key Strength 256</strong>.</td><td><code>Key Strength 128</code></td><td>String</td></tr><tr><td><strong>File Name</strong> <code>(DB)</code></td><td>Nome ou caminho completo do arquivo a ser compactado (por exemplo, <code>tmp/processed/file.txt</code>). Na operação <strong>Multiple Compress</strong>, este campo também aparece ao clicar em <strong>Add</strong> no parâmetro <strong>Files</strong>.</td><td><code>data.csv</code></td><td>String</td></tr><tr><td><strong>Output File Name</strong> <code>(DB)</code></td><td>Nome do arquivo ZIP a ser gerado.</td><td><code>data.zip</code></td><td>String</td></tr><tr><td><strong>Fail On Error</strong></td><td>Se ativado, interrompe a execução do pipeline ao ocorrer um erro. Se desativado, a execução continua, mas a propriedade <code>"success"</code> será definida como <code>false</code>.</td><td>False</td><td>Booleano</td></tr></tbody></table>

### **Aba Advanced**

<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>Set password</strong></td><td>Quando ativado, protege o arquivo ZIP com uma senha.</td><td>False</td><td>Boolean</td></tr><tr><td><strong>Account</strong></td><td><a href="https://app.gitbook.com/s/cO0A6g1dOsu8BiHYqO67/platform-administration/settings/accounts">Conta</a> utilizada pelo conector. Disponível apenas se o parâmetro <strong>Use Dynamic Account</strong> estiver <strong>desativado</strong>.</td><td>N/A</td><td>Account</td></tr><tr><td><strong>Use Dynamic Account</strong></td><td>Quando ativado, o conector utilizará a conta de forma dinâmica. Caso contrário, a conta será usada de forma estática.</td><td>False</td><td>Boolean</td></tr><tr><td><strong>Scoped</strong></td><td>Quando ativado, a conta armazenada será isolada de outros subprocessos. Nesse caso, subprocessos enxergarão sua própria versão dos dados da conta. Não é compatível com contas usadas em headers ou corpo da requisição. Disponível apenas se <strong>Use Dynamic Account</strong> estiver <strong>ativo</strong>.</td><td>False</td><td>Boolean</td></tr><tr><td><strong>Account Name</strong></td><td>Nome da conta dinâmica utilizada pelo conector. Essa conta deve ter sido previamente configurada por um conector <a href="https://docs.digibee.com/documentation/pt-br/reference-guides/connectors/tools/store-account"><strong>Store Account</strong></a> no pipeline para que o processo funcione. Disponível apenas se <strong>Use Dynamic Account</strong> estiver ativo.</td><td>N/A</td><td>String</td></tr></tbody></table>

### **Aba Documentação**

<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>Documentation</strong></td><td>Campo opcional para descrever a configuração do conector e quaisquer regras de negócio relevantes.</td><td>N/A</td><td>String</td></tr></tbody></table>

## **Fluxo de mensagens**

### **Entrada**

O conector aceita qualquer mensagem de entrada, que pode ser referenciada com [Double Braces](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/double-braces/overview) (`{{ }}`).

### **Saída**

Em caso de sucesso:

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

Em caso de erro:

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

## **ZIP File V2 em ação**

### **Resposta bem-sucedida**

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

* `outputFileName`: Nome do arquivo ZIP gerado.
* `success`: `true` se a operação foi concluída com sucesso; caso contrário, `false`.

### **Resposta com erro**

```json
{
  "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`: Descrição do erro ocorrido.
* `exception`: Detalhes técnicos do erro.

### **Manipulação de arquivos no pipeline**

O pipeline utiliza uma área temporária e local para manipulação de arquivos, que é isolada e acessível apenas durante a execução.

Isso significa que o acesso aos arquivos funciona como um sistema de arquivos virtual. Os nomes dos arquivos podem conter qualquer caractere válido, extensões e caminhos relativos, como:

* `data.csv`
* `processing/data.csv`

Qualquer tentativa de acesso a caminhos absolutos será bloqueada durante a execução do pipeline.
