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.
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>"));
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:
A atividade Temporary Storage Read está configurada em suas opções para tratá-la como um arquivo compactado:
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: