Saltar al contenido

Leer un Archivo Codificado en Base64 Comprimido

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

La codificación de una cadena se logra usando Base64Encode en combinación con HexToBinary y StringToHex funciones:

binary = Base64Encode(HexToBinary(StringToHex("Hello world!"));

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 guarda archivos comprimidos en Amazon S3 y necesita que se lean en un proyecto de Cloud Studio. Dado que Amazon S3 almacena todos sus datos en Base64, el enfoque estándar es simplemente usar Base64Decode y lee el resultado. Sin embargo, si la fuente está comprimida, tenemos que seguir un proceso diferente. Primero, el archivo binario debe almacenarse en el disco (no en una Variable extremo). Esto se puede hacer escribiendo a Almacenamiento temporal o un Recurso compartido de archivos.

operación leer s3

En la operación anterior, la transformación de solicitud proporciona información para la actividad de Amazon S3:

s3 obtener respuesta

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

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

A esto le sigue la escritura del 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 usando el Archive patrón lee el archivo y escribe en el destino:

archivo de almacenamiento de operación

La actividad Almacenamiento temporal Lectura está configurada en sus opciones para tratar esto como un archivo comprimido:

compresión de lectura de almacenamiento temporal

Para que el nombre del archivo comprimido original sea almacenado por la actividad Almacenamiento temporal Escritura, use el [file].[ext] palabras clave de nombre de archivo en el campo Nombres de archivo:

escritura de almacenamiento temporal