Ir para o conteúdo

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.

operação leitura s3

Na operação acima, a transformação de solicitação fornece entrada para a atividade do Amazon S3:

s3 obtém resposta

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:

arquivo de operação

A atividade Leitura do Armazenamento Temporário está configurada em suas opções para tratar isso como um arquivo compactado:

Compactação de leitura do Armazenamento Temporário

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:

Gravação de armazenamento temporário