Leer un archivo comprimido codificado en Base64 en Jitterbit Integration Studio
Introducción
Cuando una solicitud o respuesta contiene un archivo binario (como un PDF), suele estar codificado en Base64. La razón es simple: JSON y XML son formatos basados en texto y no pueden usar nada binario.
Codificar una cadena
La codificación de una cadena se realiza mediante Base64Encode
en combinación con Jitterbit HexToBinary
y StringToHex
funciones:
binary = Base64Encode(HexToBinary(StringToHex("Hello world!"));
Decodificar un archivo binario
Decodificar un archivo binario es aún más sencillo con Base64Decode
. Sin embargo, trabajar con un archivo comprimido codificado en Base64 requiere trabajo adicional.
Supongamos que guarda archivos comprimidos en Amazon S3 y necesita leerlos en un proyecto de Integration 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 el código fuente está comprimido, debemos seguir un proceso diferente. Primero, el archivo binario debe almacenarse en el disco (no en una Variable extremo). Esto se puede hacer escribiendo en Almacenamiento temporal o un recurso compartido de archivos local.
En la operación anterior, la transformación de solicitud proporciona entrada a la actividad de Amazon 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>"));
A continuación, se escribe el archivo decodificado en un Almacenamiento temporal diferente extremo. Tenga en cuenta 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 Archivo El patrón lee el archivo y escribe en el destino:
La actividad Lectura de Almacenamiento Temporal está configurada en sus opciones para tratar esto como un archivo comprimido:
Para que la actividad Escritura de Almacenamiento Temporal almacene el nombre del archivo comprimido original, utilice el comando [file].[ext]
palabras clave del nombre del archivo en el campo Nombres de archivo: