Ir para o conteúdo

Leia um Arquivo Compactado Codificado em Base64

Introdução

Quando uma solicitação ou resposta contém um arquivo binário (como um PDF), 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

A codificação de uma string é realizada usando Base64Encode em combinação com Jitterbit's 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 Cloud Studio. Como o Amazon S3 armazena todos os seus dados em Base64, a abordagem padrão é simplesmente usar Base64Decode e leia o resultado. No entanto, se a fonte estiver compactada, teremos que seguir um processo diferente. Primeiro, o arquivo binário precisa ser armazenado no disco (não em uma Variável endpoint). Isso pode ser feito escrevendo para Armazenamento temporário ou um local Compartilhamento de arquivos.

operação lida 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>"));

Isso é seguido pela gravação do arquivo decodificado em um Armazenamento temporário 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 Archive padrão lê o arquivo e grava no destino:

arquivo de operação

A atividade Temporary Storage Read está configurada em suas opções para tratá-la como um arquivo compactado:

compressão de leitura de armazenamento temporário

Para que o nome do arquivo compactado original seja armazenado pela atividade Temporary Storage Write, use o [file].[ext] palavras-chave do nome do arquivo no campo Filenames:

gravação de armazenamento temporário