Für Entwickler, Architekten, Projektleiter und...

Read more

In der Welt der Softwareentwicklung ist die...

Read more

QUIBIQ spendet für den guten Zweck – und für...

Read more

Eine bestimmte Antwort auf einen HTTP Request zu...

Read more

In einer Welt, die von stetigem Wandel geprägt...

Read more

In einem unserer Kundenprojekte, war das Ziel eine...

Read more

QUIBIQ Hamburg wird mit dem Hamburger...

Read more

Zwei Tage lang wurde vom 14.-15.11 wieder das...

Read more

Was ist ein Excel-Plugin – und wann ist es...

Read more

Wir expandieren, bringen Kunden und Talente besser...

Read more

How-to: Unzip Big Data auf dem Azure Fileshare –Part 1

Anforderung: Vor kurzem hatte ich die Anforderung 7z-Archive auf dem Azure Fileshare zu unzippen. Es gab also ein Source-Folder, in dem alle zu entpackenden 7z-Archive und auch andere Dateien lagen.

Um den Überblick nicht zu verlieren waren die Archive unter bestimmten Kundenordnern abgelegt.

Source-Folder Struktur: Data\Kunde

Es sollten nun also alle Archive aus den Dateien gefiltert, entpackt und in den Target Folder gespeichert werden.

TargetFolder Struktur: Unzipped\Kunde

Ebenfalls wichtig zu wissen ist, dass es sehr große Archive waren, die in mehrere Teile aufgeteilt wurden und manchmal mit Passwörtern gesichert waren.

Entpackvorgang, wenn alle Dateien vorhanden:

Entpackvorgang, wenn Dateien fehlen:

Also suchte ich nach einem Framework, das mir genau diese Funktionen bietet…
Ich stieß auf das Framework „SevenZipSharp“ von SquidBox.
Mein erster Test bestand daraus, dass ich versucht lokal einzelnes Archiv, so wie ein großes Archiv das in Teile gesplittet war zu entpacken. Das funktioniert ohne Probleme!

Es wurde also ein SevenZipExtractor erzeugt. Als Übergabeparameter musste der Pfad des Archivs und das Passwort übergeben werden. Beim ExtractArchive werden alle zugehörigen Dateien in den Zielpfad extrahiert.
Im nächsten Schritt sollten also die Dateien vom einen Fileshare-Ordner in den anderen entpackt werden. Um Zugriff auf den Fileshare zu bekommen, nutzte ich das Azure Storage Files Shares Framework. Da man an die Dateien des Fileshares nur anhand eines Streams herankommt, suchte ich im SevenZipSharp Framework nach einer Methode, die genau die gleichen Funktionen bietet, wie beim lokalen Extrahieren.
Ich suchte und suchte und suchte…
Also war Testing angesagt…
Wir versuchten einige Dinge, wie z. B. den UNC Pfad der Datei zu nutzen, oder den Fileshare als Netzlaufwerk einzubinden. Doch nichts funktionierte.
Wir kamen zu dem Entschluss, dass nichts daran vorbeiführt, die Dateien herunterzuladen und diese lokal auf der Maschine, auf der die Azure Function ausgeführt wird, zu entpacken und wieder hochzuladen. Der Workaround sah also folgendermaßen aus:


Als die Funktionalität der Azure Function dafür fertiggestellt war, wurde sie zum finalen Test Deployed und ausgeführt.
Nach fünf Minuten endete die Function im Timeout…
Auch das Erhöhen des Timeouts auf 10 Minuten änderte nichts.
Wie wir das Problem mit dem Timeout gelöst haben, könnt ihr im nächsten Part lesen.
 

Dieser quiTeq-Tipp ist von Nico, QUIBIQ Stuttgart.

© QUIBIQ GmbH · Imprint · Data protection