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.
En la operación anterior, la transformación de solicitud proporciona información para la actividad de Amazon S3:
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:
La actividad Almacenamiento temporal Lectura está configurada en sus opciones para tratar esto como un archivo comprimido:
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: