Saltar al contenido

Leer un archivo comprimido codificado en Base64 en Jitterbit Studio

Introducción

Cuando una solicitud o respuesta contiene un archivo binario (como un PDF), generalmente se codifica en Base64. La razón es simple: JSON y XML son formatos basados en texto y no pueden usar nada binario.

Codificar una cadena

Codificar una cadena se logra utilizando Base64Encode en combinación con HexToBinary y StringToHex de Jitterbit:

binary = Base64Encode(HexToBinary(StringToHex("¡Hola mundo!"));

Decodificar un archivo binario

Decodificar un archivo binario es aún más simple con Base64Decode. Sin embargo, tratar con un archivo comprimido codificado en Base64 requiere trabajo adicional.

Supongamos que guardas archivos comprimidos en Amazon S3 y necesitas que se lean en un proyecto de Studio. Dado que Amazon S3 almacena todos sus datos en Base64, el enfoque estándar es simplemente usar Base64Decode y leer el resultado. Sin embargo, si la fuente está comprimida, debemos seguir un proceso diferente. Primero, el archivo binario debe almacenarse en el disco (no en un Variable endpoint). Esto se puede hacer escribiendo en Almacenamiento Temporal o en un Archivo Compartido.

operación leer s3

En la operación anterior, la transformación de la solicitud proporciona entrada a la actividad de Amazon S3:

respuesta get s3

A continuación, se lee y decodifica el contenido:

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

Esto es seguido por escribir el archivo decodificado en un endpoint diferente de Almacenamiento Temporal. Nota el 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, una operación utilizando el patrón de Archivo lee el archivo y escribe en el destino:

operation archive file

La actividad de Almacenamiento Temporal Leer está configurada en sus opciones para tratar esto como un archivo comprimido:

Temporary Storage read compression

Para que el nombre del archivo comprimido original sea almacenado por la actividad de Almacenamiento Temporal Escribir, utiliza las palabras clave de nombre de archivo [file].[ext] en el campo de Nombres de Archivos:

Temporary Storage write