Leia um arquivo compactado codificado em Base64 no Jitterbit Integration Studio
Introdução
Quando uma solicitação ou resposta contém um arquivo binário (como um PDF), ele geralmente é codificado em Base64. O motivo é simples: JSON e XML são formatos baseados em texto e não podem usar nada binário.
Codificar uma string
A codificação de uma string é realizada usando Base64Encode
em combinação com o Jitterbit HexToBinary
e StringToHex
funções:
binary = Base64Encode(HexToBinary(StringToHex("Hello world!"));
Decodificar um arquivo binário
Decodificar um arquivo binário é ainda mais simples com Base64Decode
. No entanto, lidar com um arquivo compactado codificado em Base64 exige trabalho extra.
Digamos que você mantenha arquivos compactados no Amazon S3 e precise que eles sejam lidos em um projeto do Integration Studio. Como o Amazon S3 armazena todos os seus dados em Base64, a abordagem padrão é simplesmente usar Base64Decode
e ler o resultado. No entanto, se o código-fonte estiver compactado, precisamos seguir um processo diferente. Primeiro, o arquivo binário precisa ser armazenado em disco (não em uma Variável endpoint). Isso pode ser feito escrevendo em Armazenamento Temporário ou um Compartilhamento de Arquivos local.
Na operação acima, a transformação de solicitação fornece entrada para a atividade do Amazon S3:
Em seguida, o conteúdo é lido e decodificado:
//decode file
undecoded = Base64Decode(ReadFile("<TAG>activity:tempstorage/s3_get_response/tempstorage_read/Read</TAG>"));
Em seguida, o arquivo decodificado é gravado em um Armazenamento Temporário diferente endpoint. Observe o uso de FlushFile
:
//write to temp
WriteFile("<TAG>activity:tempstorage/s3_get_response/tempstorage_write/Write</TAG>",undecoded,"undecoded.zip");
FlushFile("<TAG>activity:tempstorage/s3_get_response/tempstorage_write/Write</TAG>","undecoded.zip");
Finalmente, uma operação usando o Arquivo padrão lê o arquivo e grava no destino:
A atividade Leitura do Armazenamento Temporário está configurada em suas opções para tratar isso como um arquivo compactado:
Para que o nome do arquivo compactado original seja armazenado pela atividade de Gravação de Armazenamento Temporário, use o [file].[ext]
palavras-chave do nome do arquivo no campo Nomes de arquivo: