Feature Request: Multi-file download quickform

#1

Hi All,

I would like to use my KNIME Server as an intermediary to manage access data in S3 (authenticate users, query, filter and download results). This use case typically results in a dozen or so files that need to be downloaded to be worked with locally (eg. exploratory analysis in R). The files are too large to reasonably zip and too numerous to want to click on individually. Is there any slick way to do this?

Cheers

Aaron

0 Likes

#2

Hi @Aaron_Hart -

Would something like this be helpful? https://kni.me/w/PYfj4bGM9nZlNAZV

I’m thinking in particular you might want to implement the combination of the List Remote Files node to filter down to just the files you want, combined with the Amazon S3 File Picker node and whatever reader node is appropriate.

(Or possibly you’ve already tried this example, and there is a more complicated aspect to what you’re trying to do?)

4 Likes

#3

Hi Scott,

Thanks, that was helpful - I did not know about the S3 file picker node, which solves for me a related problem I was was trying to figure out.

The “tricky” part is that I want to download a dozen or so of these s3 files by clicking one button in the webportal (without zipping them). Do you know if it can be done?

Cheers,

Aaron

0 Likes

#4

Hi Aaron -

Off the top of my head I want to say yes - but I’m not 100% sure. Let me call in the webportal cavalry. :slight_smile:

2 Likes

#5

So do you want the KNIME WebPortal to list automatically n download buttons where n is the number of files that are found on S3 on workflow execution?

If that is the case you could make a network of empty table switches:

only the right amount of widgets is activated depending on how many urls are listed in the input table.
That is tedious to build and you could always have the case where you have way more download buttons than widget/quickform nodes in the workflow.

You could use a network of empty table switches of 5 widget/quickform file download node, then loop it with a recursive loop node (example here of recursive view : https://kni.me/w/20LQKtn68R7_89fH) so you hit “next” on the KNIME WebPortal and you sort of scroll through the downloads.

As a last resource you could use a generic js node with some d3 that makes some html link tags like this one: <a href=“link_from_s3”>button</a> . With d3.js yould make a pretty table for example. That would be nice but it would require some JavaScript coding.

If you want a single button that downloads multiple files via a browser, well i am not even sure if that is possible with any tool as web browser might have a protection for such a button that spams downloads and fills your folder…

Did I get your question correctly?
Let me know
Paolo

3 Likes

#6

Hi Paolo,

Thanks for chipping in. Naturally, it is the last case that I was looking to support :slight_smile:

I found some solutions that at least work for me on stack exchange, but was unable to get them to work in the JS view. I suspect that this is because of an iframe or something, but I don’t really know anything about js.

I’ll explore an alternate approach of loading them onto a shared drive instead for now.

Thanks again for the tips!

Aaron

4 Likes