Ir para o conteúdo

Ler um arquivo compactado codificado em Base64 no Jitterbit Studio

Introdução

Quando uma solicitação ou resposta contém um arquivo binário (como um PDF), ele geralmente é codificado em Base64. A razão é simples: JSON e XML são formatos baseados em texto e não podem usar nada binário.

Codificar uma string

Codificar uma string é realizado usando Base64Encode em combinação com as funções HexToBinary e StringToHex do Jitterbit:

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 requer um trabalho extra.

Vamos supor que você armazena arquivos compactados no Amazon S3 e precisa que eles sejam lidos em um projeto do 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 a fonte estiver compactada, precisamos seguir um processo diferente. Primeiro, o arquivo binário precisa ser armazenado no disco (não em um endpoint de Variável). Isso pode ser feito escrevendo em Armazenamento Temporário ou em um Compartilhamento de Arquivos local.

operation read s3

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

s3 get response

Em seguida, o conteúdo é lido e decodificado:

//decode file
undecoded = Base64Decode(ReadFile("<TAG>activity:tempstorage/s3_get_response/tempstorage_read/Read</TAG>"));

Isso é seguido pela gravação do arquivo decodificado em um endpoint diferente de Armazenamento Temporário. 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 padrão Arquivo lê o arquivo e grava no destino:

operation archive file

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

Temporary Storage read compression

Para que o nome do arquivo compactado original seja armazenado pela atividade Gravar do Armazenamento Temporário, use as palavras-chave de nome de arquivo [file].[ext] no campo Nomes de Arquivo:

Temporary Storage write