Interação com Arquivos e o Formato ByteStream
Sumário
1. Conceito
Um ByteStream é uma sequência de bytes usada para ler, gravar e transferir dados binários, como arquivos, imagens, PDFs e conteúdos criptografados. Diferentemente dos streams de texto, ele manipula dados em baixo nível, sem interpretar caracteres.
Na linguagem Java, os ByteStreams derivam das classes InputStream e OutputStream, sendo amplamente utilizados para entrada e saída de dados em formato binário.
2. ByteStream no CONNECT
No CONNECT, o ByteStream funciona como o formato intermediário padronizado entre ações nativas, garantindo integrações eficientes, seguras e consistentes. Ele permite que o usuário trabalhe com dados externos de forma simples, enquanto conceitos técnicos como InputStream e OutputStream são tratados nos bastidores. É utilizado para:
- Converter dados entre formatos (ex.: String ↔ ByteStream);
- Manipular arquivos e conteúdos criptografados de forma segura;
- Garantir interoperabilidade entre protocolos (FTP, arquivos locais, criptografia, etc.).
Essa padronização assegura a interoperabilidade entre ações que manipulam arquivos, dados criptografados e outros conteúdos binários, promovendo consistência e flexibilidade nas integrações.
3. Ações que Utilizam ByteStream
3.1 Conversão de Dados
- ConvertFromByteStreamAction: converte ByteStream em String ou Base64.
- ConvertToByteStreamAction: converte String ou Base64 em ByteStream.
3.2 Criptografia PGP
- PGPDecryptionAction: descriptografa conteúdo e chave em ByteStream (padrão OpenPGP).
- PGPEncryptionAction: criptografa conteúdo e chave em ByteStream (padrão OpenPGP).
3.3 Operações com Arquivos
FTP:
- FTPReadFileAction: lê arquivo em servidor FTP e retorna ByteStream. Suporta conexão ativa ou passiva.
- FTPWriteFileAction: grava ByteStream em servidor FTP. Suporta conexão ativa ou passiva.
Arquivos Locais (Standalone):
- FileReadAction: lê arquivo local e retorna ByteStream.
- FileWriteAction: grava ByteStream em arquivo local.
Disponíveis apenas na versão Standalone (on-premises).
Manipulação de PDFs:
- PDFSetPasswordAction: aplica ou altera senha em PDF via ByteStream e retorna novo arquivo.
Observação:
O CONNECT ainda possui ações legadas que não seguem o padrão ByteStream, utilizando tipos como String, byte[], FileAttachment e SeniorConnectFile. Essas variações podem causar dificuldades na interoperabilidade entre ações, na manutenção e na escalabilidade dos fluxos.
Recomendações Atuais
Enquanto o pacote de padronização não é disponibilizado, recomenda-se:
- Validar o tipo de dado esperado por cada ação antes de conectar fluxos.
- Utilizar ações baseadas em ByteStream sempre que possível.
- Evitar dependência de SMBv1 em novos projetos.
- Documentar claramente os formatos utilizados em cada etapa do fluxo.
Considerações Técnicas
- Utilize o ByteStream como formato intermediário sempre que possível. Ele permite que ações sejam encadeadas com facilidade, pois compartilham um formato comum.
- Para arquivos grandes, utilize paginação ou controle de tamanho.
- A conversão entre String/Base64 ↔ ByteStream é essencial para integrar sistemas que não operam diretamente com dados binários.
- A padronização simplifica processos de criptografia, compressão e transferência de dados.
- Transformações específicas podem ser realizadas com ExecuteJavaAction.

English
Español


