Custom Export Service. The service creates zip files with shps in them and return the url to the file. I understand if you intend to to run this in synchronous mode, you must have a tool parameter with output type as "File" or the synchronous service will immediately delete the output zip file.
When testing, I noticed if my output parameter was instead set to "String" and the output content was a JSON object, async worked fine, but synchronous would not persist the output file on disk.
From a synchronous gp service, How can I return an arbitrary number of urls to output files on disk?
I'm wondering if this is impossible with current configuration options since output "File" parameters must be defined at publish time and cannot be altered at runtime. I could return a json object with all the paths, but only any paths defined in the tool will remain on disk after the service's response.