Zum Inhalt springen

Lesen einer gezippten, Base64-kodierten Datei in Jitterbit Studio

Einführung

Wenn eine Anfrage oder Antwort eine Binärdatei (wie eine PDF) 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.

Eine Zeichenkette kodieren

Das Kodieren einer Zeichenkette erfolgt mit Base64Encode in Kombination mit Jitterbits HexToBinary und StringToHex Funktionen:

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

Eine Binärdatei dekodieren

Das Dekodieren einer Binärdatei ist mit Base64Decode noch einfacher. Der Umgang mit einer Base64-kodierten gezippten Datei erfordert jedoch zusätzliche Schritte.

Angenommen, Sie speichern gezippte Dateien in Amazon S3 und müssen diese in einem Studio-Projekt lesen. Da Amazon S3 alle seine Daten in Base64 speichert, besteht der Standardansatz darin, einfach Base64Decode zu verwenden und das Ergebnis zu lesen. Wenn die Quelle jedoch gezippt ist, müssen wir einen anderen Prozess befolgen. Zuerst muss die Binärdatei auf der Festplatte gespeichert werden (nicht in einem Variable Endpunkt). Dies kann durch Schreiben in Temporary Storage oder einen lokalen File Share erfolgen.

operation read s3

In der obigen Operation liefert die Anfrage-Transformation Eingaben für die Amazon S3-Aktivität:

s3 get response

Als nächstes wird der Inhalt gelesen und dekodiert:

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

Danach wird die decodierte Datei an einen anderen Temporary Storage Endpunkt geschrieben. 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");

Schließlich liest eine Operation mit dem Archive Muster die Datei und schreibt in das Ziel:

operation archive file

Die Temporary Storage Read Aktivität ist in ihren Optionen so konfiguriert, dass sie dies als eine gezippte Datei behandelt:

Temporary Storage read compression

Damit der ursprüngliche gezippte Dateiname von der Temporary Storage Write Aktivität gespeichert wird, verwenden Sie die [file].[ext] filename keywords im Feld Filenames:

Temporary Storage write