# Automatize o armazenamento de arquivos com a Digibee

Envios e downloads de arquivos diários são cruciais para as operações comerciais. No entanto, até mesmo pequenos erros no gerenciamento de arquivos podem levar a atrasos, problemas de conformidade (*compliance*) ou perda de dados.

Com a Digibee, você pode garantir que os arquivos sejam tratados com precisão e reduzir a necessidade de trabalho manual nessas tarefas importantes. Isso diminui as chances de erro humano e melhora a produtividade, permitindo que as equipes se concentrem em tarefas mais estratégicas em vez de no gerenciamento rotineiro de arquivos.

## Por que a automação do gerenciamento de arquivos é importante

Em muitos setores, o processamento manual de arquivos é demorado e propenso a erros. Automatizar esses processos com a Digibee garante que os arquivos sejam manipulados de forma precisa e segura.

### Casos de uso

* **Bancos:** Um banco gerencia centenas de e-mails diários com relatórios financeiros de clientes. Configurando o manuseio automático de arquivos, esses relatórios são carregados com segurança, processados e ficam prontos para revisão e análise.
* **Supply chain:** Uma empresa de cadeia de suprimentos pode automatizar a consolidação de arquivos, como faturas, registros de inventário e listas de embalagens de vários fornecedores e distribuidores.
* **Varejo:** Um varejista global pode sincronizar arquivos de inventário de produtos de diversos fornecedores em um sistema centralizado, evitando discrepâncias de estoque, perdas de vendas e eficiência reduzida.

Em todos esses casos, a automação das operações com arquivos elimina a necessidade de intervenção manual, permitindo que as empresas processem o conteúdo dos arquivos de forma rápida e segura, sem interação direta.

## Começando: Automatizando seus pipelines de processamento de arquivos

Você pode melhorar seu fluxo de trabalho com a Digibee automatizando pipelines de processamento de arquivos enquanto eles são integrados aos seus processos. Abaixo, veja quais *triggers* podem iniciar esses pipelines de processamento de arquivos, ajudando a otimizar seu fluxo de trabalho com base nas suas necessidades.

### Triggers para iniciar a automação

* [**Scheduler Trigger**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/scheduling/scheduler)**:** Configure seu pipeline para ser executado em intervalos definidos usando expressões CRON. Isso permite que o pipeline verifique um arquivo específico no armazenamento designado nesses horários programados.
* [**Email Trigger**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/web-protocols/email)**:** Processa automaticamente os arquivos recebidos por e-mail. O pipeline é acionado assim que um anexo de arquivo chega na caixa de entrada monitorada.
* [**HTTP File Trigger**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/web-protocols/http-file)**:** Este trigger suporta uploads e downloads de arquivos maiores que 5 MB via HTTP.

## Compreendendo o gerenciamento de arquivos

Embora a automação simplifique o gerenciamento de arquivos, é essencial entender a diferença técnica entre ler o conteúdo de um arquivo ou baixá-lo. A leitura carrega o arquivo na memória de execução, enquanto o download salva o arquivo no disco sem usar memória — uma distinção crucial para muitos casos de uso.

Esse processo otimiza fluxos de trabalho e evita ineficiências, especialmente com arquivos grandes. Por exemplo, lidar com arquivos que excedem os limites de memória pode resultar em erros de falta de memória (*out-of-memory*), então entender essas distinções é fundamental para projetar pipelines de processamento de arquivos eficazes.

Ao ler o conteúdo dos arquivos apenas quando necessário e usar [técnicas de paginação](https://docs.digibee.com/documentation/resources/pt-br/use-cases/integration-performance-api-pagination) para arquivos grandes, sua equipe pode evitar problemas de desempenho.

## Armazenamento de arquivos: Digibee e opções de terceiros

Depois que o processamento de arquivos começa, você pode explorar opções de armazenamento. A Digibee integra-se a soluções nativas e de terceiros para atender a várias necessidades. Aqui está uma visão mais detalhada:

### Conectores de armazenamento

* [**Digibee Storage**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/file-storage/digibee-storage)**:** O conector de armazenamento nativo da Digibee permite listar, baixar, carregar e excluir arquivos dentro do seu *realm*. Observe que essa opção de armazenamento está disponível apenas para clusters da Digibee. Se você estiver usando uma cloud privada, o conector de armazenamento da Digibee pode não estar acessível.

{% hint style="success" %}
Recomenda-se armazenar arquivos temporariamente e implementar uma rotina de limpeza para remover arquivos que não são mais necessários para processos ativos.
{% endhint %}

* **Armazenamento de terceiros:** Use conectores para [**Amazon S3**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/aws/s3-storage), [**Microsoft OneDrive**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/file-storage/onedrive), [**Google Cloud Storage**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/file-storage/google-storage) e outros para interagir com serviços de armazenamento em nuvem externos.
* [**FTP**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/file-storage/ftp)**/**[**SFTP**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/file-storage/sftp)**:** Conecte-se com segurança a serviços externos que suportam esses protocolos para upload, download, exclusão de arquivos e mais.

## Construindo seu pipeline

O diagrama abaixo fornece uma visão de alto nível de um processo de implementação para carregar um arquivo no armazenamento após enriquecimentos e transformações. Você pode projetar seu pipeline para acomodar as operações necessárias, pois cada cenário de integração apresenta um caso de uso único.

<figure><img src="https://content.gitbook.com/content/XfrDexGOLMin51pAiWkq/blobs/75hFWkMYDVvi5HG0CvJl/image1.png" alt=""><figcaption></figcaption></figure>

### Visão geral do pipeline

1. **Trigger:** O fluxo do pipeline começa com um [**HTTP File Trigger**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/web-protocols/http-file), que cria um *endpoint* para receber arquivos de serviços externos.
2. **Validação de arquivo:** Você pode implementar estratégias de validação para garantir que o formato do arquivo atenda aos critérios exigidos. As opções incluem o uso do conector [**Validator V2**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/tools/validator-v2), do conector [**Choice**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/logic/choice) ou do conector [**Assert V2**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/tools/assert-v2), que pode ser empregado para interromper a execução quando uma condição definida não é atendida.
3. **Processamento de arquivo:** Após o recebimento do arquivo, o pipeline executa tarefas de processamento de arquivo, como transformação e enriquecimento. Você pode aproveitar conectores de stream, como [**Stream File Reader**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/files/stream-file-reader) e [**Stream JSON File Reader**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/files/stream-json-file-reader), para essa finalidade. Esses conectores permitem a execução em lote, onde cada linha ou registro resultante do arquivo é processado individualmente por um subfluxo. Essa abordagem em lote também pode funcionar com arquiteturas assíncronas, tornando-as adaptáveis a diferentes necessidades de processamento.

{% hint style="success" %}
Ao usar conectores de stream, é importante notar que exceções não interrompem o fluxo. Em vez disso, elas acionam o subfluxo [OnException](https://app.gitbook.com/s/cO0A6g1dOsu8BiHYqO67/development-cycle/build-overview/pipelines/subpipelines#onexception), permitindo que o pipeline continue processando a próxima linha do arquivo até a conclusão.
{% endhint %}

4. **Armazenamento:** Após completar as transformações necessárias, você pode carregar o arquivo recém-processado no armazenamento apropriado. Se precisar gravar o arquivo, você pode usar o conector [**File Writer**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/files/file-writer). Depois que o arquivo é gravado, você o carrega para o armazenamento apropriado, seja usando o [**Digibee Storage**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/file-storage/digibee-storage) ou uma opção de terceiros como [**Amazon S3**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/aws/s3-storage), [**Google Cloud Storage**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/file-storage/google-storage) ou [**Microsoft OneDrive**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/file-storage/onedrive), entre outros.
5. **Tratamento de erros:** O tratamento de erros pode ser implementado para monitorar o sucesso ou falha da operação de armazenamento selecionada, garantindo que quaisquer problemas sejam prontamente resolvidos.
6. **Saída:** A saída final gerada pelo pipeline deve ser configurada. Isso envolve criar uma resposta estruturada, que pode ser realizada usando um conector como o [**JSON Generator**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/tools/json-generator).

## Considerações finais

Pipelines automatizados de gerenciamento de arquivos são essenciais para garantir o tratamento confiável de arquivos, minimizar erros manuais, economizar tempo e melhorar a precisão operacional. Você pode explorar mais possibilidades em nosso [Portal de Documentação](https://docs.digibee.com/documentation/pt-br), fazer o curso “Trabalhando com Arquivos” no [Digibee Academy](https://digibee.academy/) ou visitar nosso [Blog](https://www.digibee.com/pt/blog/) para descobrir mais recursos e insights.

Se você tiver feedback sobre este Caso Prático de Uso ou sugestões para futuros artigos, adoraríamos ouvir sua opinião. Compartilhe as suas ideias no nosso[ formulário de feedback](https://forms.gle/R84JfjbPVoVHGwZe9).
