Lesen Sie eine komprimierte Base64-codierte Datei im Jitterbit Integration Studio
Einführung
Wenn eine Anfrage oder Antwort eine Binärdatei (z. B. eine PDF-Datei) enthält, wird sie normalerweise in Base64 kodiert. Der Grund ist einfach: JSON und XML sind textbasierte Formate und können nichts Binäres verwenden.
Einen String kodieren
Die Kodierung einer Zeichenfolge erfolgt mit Base64Encode
in Kombination mit Jitterbits HexToBinary
Und StringToHex
Funktionen:
binary = Base64Encode(HexToBinary(StringToHex("Hello world!"));
Dekodieren einer Binärdatei
Das Dekodieren einer Binärdatei ist noch einfacher mit Base64Decode
. Der Umgang mit einer Base64-kodierten ZIP-Datei erfordert jedoch zusätzlichen Aufwand.
Angenommen, Sie speichern komprimierte Dateien in Amazon S3 und müssen diese einlesen an Integration Studio Projekt. Da Amazon S3 alle seine Daten in Base64 speichert, besteht der Standardansatz darin, einfach Base64Decode
und das Ergebnis lesen. Wenn die Quelle jedoch komprimiert ist, müssen wir einen anderen Prozess befolgen. Zuerst muss die Binärdatei auf der Festplatte gespeichert werden (nicht in einer Variable Endpoint). Dies kann durch Schreiben in den Temporären Speicher erfolgen oder eine lokale Dateifreigabe.
Im obigen Operation stellt die Transformation die Eingabe für die Amazon S3 Aktivität bereit:
Als nächstes wird der Inhalt gelesen und dekodiert:
//decode file
undecoded = Base64Decode(ReadFile("<TAG>activity:tempstorage/s3_get_response/tempstorage_read/Read</TAG>"));
Anschließend wird die dekodierte Datei in einen anderen Temporären Speicher geschrieben Endpoint. Beachten Sie die Verwendung von 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");
Zum Schluss noch eine Operation mit dem Archiv Muster liest die Datei und schreibt in das Ziel:
Die Aktivität „Temporary Storage Read“ ist in ihren Optionen so konfiguriert, dass dies als komprimierte Datei behandelt wird:
Damit der ursprüngliche komprimierte Dateiname von der Aktivität „Temporärer Speicher Schreiben“ gespeichert wird, verwenden Sie die [file].[ext]
Dateiname Schlüsselwörter im Feld Dateinamen: