FTP-Download in Verzeichnis mit Unterordnern

Hallo,


ich möchte alle Dateien in einem FTP-Verzeichnis herunterladen. Das Problem dabei: Die Dateien befinden sich in Unterordnern.

Ich weiß im Voraus nicht, wieviele Unterordner existieren. Also die Unterordner direkt ansteuern ist keine Option.


Hier eine Beispielstruktur:

  • Zielordner
  • -->Unterordner1
  • ---->Zieldatei
  • -->Unterordner2
  • ---->Zieldatei
  • -->Unterordner3
  • ---->Zieldatei

Über einen FTPDownload kann ich mir ja eine Liste aller Ordnernamen holen. Ich habe also einen Liste mit [Unterordner1,Unterordner2,Unterordner3].
Diese Liste müsste ich dann in einen zweiten FTPDownload füttern, der mir aus jedem Ordner in der Liste die Dateien holt. Daran scheitere ich aber grade, da der FTPDownload keine Listen akzeptiert.

Habt ihr dafür eine Lösung mit den momentanen Mitteln? Oder könnt ihr euch vorstellen, den FTPDownload um eine weitere Option zum Durchsuchen von Unterordner zu erweitern?

Wir nehmen das Thema mal mit in die nächste Dev-Runde und melden uns.

Könntest du uns noch etwas konkreter deinen Anwendungsfall erläutern (gern auch per Ticket falls zu sensitiv)?


Wir würden z.B. gern verstehen:

- wieviele Ordner könnten das realistischerweise durchschnittlich / maximal sein?

- wie heißen die in deinem konkreten Beispiel? (ist das wirklich eher Zufall oder in der Regel Monatsnamen, Datum-Timestamps etc.)

- wie sehen die Dateinamen in den Unterordnern aus? Kann es z.B. vorkommen, dass der gleiche Dateiname in mehr als einem Folder existiert? (z.B. FolderA/products.csv und FolderB/products.csv).



Mein Beschreibung oben ist nicht ganz akurat. Eigentlich möchte ich den gesamten Inhalt von "Zielordner" zippen (inklusive Ordnerstruktur!) und per Mail verschicken. Weiß garnicht, ob das überhaupt von eurer Seite umsetzbar.

Notfalls wäre es aber auch okay, wenn ich nur die Dateien ohne Ordnerstruktur verschicken. Die Ordnerstruktur dient nur der Übersichtlichkeit und ist nicht dringend notwendig.


Generell zum Anwendungsfall:

In den Ordner werden für Subsets unsere Produkte XMLs in verschiedenen Sprachen abgelegt. Pro Subset pro Sprache wird eine XML erstellt. Für jedes Subset wird ein Ordner erstellt und alle XMLs für diese Subset darin abgelegt.


Die Ordnerstrukur ist also:

Zielordner

-->Subset1

---->Subset1_Sprache1.xml
---->Subset1_Sprache2.xml
---->Subset1_Sprache3.xml
---->...

-->Subset2

---->Subset2_Sprache1.xml

---->Subset2_Sprache2.xml
---->Subset2_Sprache3.xml

-->Subset3

---->...


Im Moment sind wir bei 27 Subsets, welche in 15 Sprache erstellt werden.



Der Text beantwortet schon fast alle eurer Fragen, ich wiederhole mich hier im Zweifelsfall nochmal.

- wieviele Ordner könnten das realistischerweise durchschnittlich / maximal sein?

---> Im Moment handelt es sich um 27 Ordner. Viel mehr werden es auch nicht.


- wie heißen die in deinem konkreten Beispiel? (ist das wirklich eher Zufall oder in der Regel Monatsnamen, Datum-Timestamps etc.)

---> Die Dateien bestehen aus einer Kombination aus Identifikator und Sprache, also Subset1_Sprache1. Timestamps habe ich bereits verworfen, da sonst die Auswahl der aktuellen XMLs noch komplexer wird.


- wie sehen die Dateinamen in den Unterordnern aus? Kann es z.B. vorkommen, dass der gleiche Dateiname in mehr als einem Folder existiert? (z.B. FolderA/products.csv und FolderB/products.csv).

---> Dateinamen sind eindeutig. Benennung siehe oben.


Wie bereits oben erwähnt, möchte ich eigentlich die Ordnerstruktur mit in die Zip-Datei übernehmen. Bei mehr als 400 Datei in einem Ordner verliert man schonmal schnell den Überblick.

Wenn das nicht möglich ist, kann ich auch bei der Ablage der Dateien auf die Unterordner verzichten und das Problem auf dem Wege lösen.

Wir haben das jetzt nochmal diskutiert.


- "Eigentlich möchte ich den gesamten Inhalt von "Zielordner" zippen (inklusive Ordnerstruktur!)"


Das "Unterordner-Thema" ist leider technisch nicht möglich. Synesty kennt intern quasi nur flache Datei-Listen. Sowas wie Unterordner gibt es da nicht.


Die einzige Möglichkeit, die wir aktuell sehen ist folgende:


1. 27 x FTPDownload Step (ein Step pro Ordner)

2. ToList (evtl. mehrere davon)

3. Archive (zippen)




Hier musst du aufpassen, dass die Dateien wirklich alle eindeutig benannt sind. Dopplungen werden verschluckt. D.h. da landet vermutlich nur die erste in der ZIP.




Anderer Workaround wäre, dass du jedes FTPDownload-Ergebnis zipst (also pro Ordner eine ZIP-Datei), und dann am Ende aus allen Ordner-ZIPs, noch mal eine ZIP-Datei machst.




Damit hättest du dann eine Zip-mit mehreren ZIP-Dateien pro Ordner:


Man bekommt alle Unter-Zip-Dateien auch mit 2 Klicks extrahiert.

Wenn es nur ums "zur Verfügung stellen" der Daten geht wäre das evtl. ok.


Finde es immer schade, wenn die Lösung daraus besteht, einen Step X-mal zu wiederholen. Manchmal geht es wohl nicht anders.


Vielleicht könnt ihr ja meinem initialen Ansatz nochmal durchdenken:

Über einen FTPDownload kann ich mir ja eine Liste aller Ordnernamen holen. Ich habe also einen Liste mit [Unterordner1,Unterordner2,Unterordner3].

Diese Liste müsste ich dann in einen zweiten FTPDownload füttern, der mir aus jedem Ordner in der Liste die Dateien holt. Daran scheitere ich aber grade, da der FTPDownload keine Listen akzeptiert.


Wenn der FTPDownload eine Liste an Verzeichnissen verarbeiten könnte, ist mein Anwendungsfall ja mit zwei FTPDownload-Steps erledigt. Im ersten Schritt holt man sich alle Unterordner und füttert die Liste alle Unterordner dann in den nächsten FTPDownload.


Dennoch danke für die Hilfe.
Könnte das Thema als erledigt betrachten. Ich werde das Ganze jetzt erstmal mittels einer Vereinfachung der Ablagestruktur auf weniger Ordner und entsprechend vieler FTPDownload-Steps