This has been a recurring question in the Community forum. I replied to those a few times so I've decided to post the answer here as an article so that's easier to find and reference.
The question is: if you have a ZIP file that contains other ZIP files (which may in turn contain other ZIP files, etc.), how can I extract all the ZIP files, recursively, using NiFi?
One way to do that is to implement the following data flow:
The RouteOnAttribute processor checks the file name and if it's a ZIP file it sends it for unpacking. Otherwise sends the non-zip file downstream.
You can find the flow definition attached below.
@araujo It would be awesome if you could also link a flow definition file....
Good idea, @steven-matison .
I've attached the flow above.